[C/C++] Gotoxy() trong Dev-C++ – Gotoxy in Dev-C++
Trong Dev-C++ mặc định không có hàm gotoxy(x, y). Ta cần xây dựng nó bằng việc sử dụng thư viện windows.h như sau:
void gotoxy(int x, int y) { static HANDLE h = NULL; if(!h) h = GetStdHandle(STD_OUTPUT_HANDLE); COORD c = { x, y }; SetConsoleCursorPosition(h,c); }
VD:
#include <stdio.h> #include <windows.h> void gotoxy(int x, int y) { static HANDLE h = NULL; if(!h) h = GetStdHandle(STD_OUTPUT_HANDLE); COORD c = { x, y }; SetConsoleCursorPosition(h,c); } int main(){ char *s = "nguyenvanquan7826"; gotoxy(40 - strlen(s)/2, 1); printf("%snn", s); }
làm sao để lưu lại dùng mãi mãi được bạn, mình mới tập tành học lại tới phần vòng lặp thì gặp hàm này và textcolor nhưng không có hàm. Mình tìm được cái xây dựng lại làm nhưng ko biết làm sao để khi cần có thể gọi lại cho tiện. Bạn hướng dẫn hộ mình hoặc cho bài mình đọc tham khảo cũng được.
Chào bạn, bạn có thể tự tạo thư viện cho riêng mình vào copy vào thư mục include. Xem hướng dẫn tại Tạo thư viện trong C – Create a library in C
#ifndef __gotoxy_H__
#define __gotoxy_H__
#include
void gotoxy(int x, int y)
{
static HANDLE h = NULL;
if(!h)
h = GetStdHandle(STD_OUTPUT_HANDLE);
COORD c = { x, y };
SetConsoleCursorPosition(h,c);
}
#endif
bạn copy cái trên lưu lại gotoxy.h
xong copy cái file đó vào đó vào …MinGW64\include\
lần sau thì chỉ cần #include bên dưới gọi gotoxy(…, …); là đc
cái #include dưới #define là windows.h nhé
Bạn có hàm nào có thể đọc/ghi một kí tự trên màn hình console không ?
Ví dụ: muốn đọc kí tự ở ô (2,3) thì ta gọi GetCharXY(2,3) còn in kí tự ch ra ô (2,3) thì ta gọi PutCharXY(ch,2,3)
Phân đọc ký tự trên màn hình thì chắc không được. Còn ghi ra thì bạn goto tới nó và in như bình thường thôi…
cái putchar
void PutCharXY(int x, int y, char* KyTu){
gotoxy(x, y);
printf(KyTu);
}
cái getchar thì chịu
Bạn có thể giải thích cho mình về các lệnh trong hàm đó được không?
Mấy lệnh đó để tính toán vị trí cần đến thôi bạn. Còn cụ thể thì mình không rõ vì nó là của hệ thống.
Hi anh ! Em thắc mắc chỗ %snn ý. Nó đặc tả như nào vậy ạ. Em google nhưng nó ko ra kết quả mong muốn
Ah chắc chỗ đó bị lỗi code khi mình đổi blog. nó là %s\n\n. In chuỗi và xuống dòng.
void gotoxy(int x, int y){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),{x,y});
}
lệnh rút gon nhé
Cảm ơn bạn.