** mọi người cho e hỏi,nếu trong c e muốn bấm nút esc để kết thúc thì e phải làm thế nào ạ?**
Lệnh bắt phím trong lập trình c
Theo mình thì mình sẽ sử dụng getch() để nhận mã ASCII của bàn phím. Mã ASCII của ESC là 27 :
char k;
do{
//your code here
cout<<"nhan esc de ket thuc";
k=getch();
}while(k!=27);
2 Likes
do
{
.........
key=getch();
}while(key!=27);
//27 là mã ASCII của ESC nhé
nhưng nó sẽ hơi bất tiện trong trường hợp ví dụ bạn nhập vào gì đó thì sau khi nhập cần ấn 1 phím như enter để vòng lặp được tiếp tục nên mình khuyên nên cho điều kiện này nếu gặp trường hợp đó
if(bien_vua_nhap==27)//truong hop nay minh xét biết kiểu char nhé!
{
break;
}
2 Likes
Thế này nha.
Cách bắt key từ bàn phím để biết được là người dùng đang nhấn vào phím gì:
Có 2 cách:
Cách 1: Dùng hàm kbhit có trong thư viện #include <conio.h>
kbhit(void)
: Kiểm tra xem người dùng có nhấn vào 1 phím bất kỳ nào trên bàn phím hay không ?
=> Lấy giá trị của phím đó ra nhờ vào getch();
vd:
if(kbhit())
{
char c = getch();
printf("\nNguoi dung dang nhan vao phim %c", c);
}
Cách 2: Dùng hàm GetAsyncKeyState(<Key cần nhập>)
có trong thư viện: #include <Windows.h>
vd:
GetAsyncKeyState(VK_UP); // Đang nhấn vào phím mũi tên đi lên.
GetAsyncKeyState(VK_DOWN); // Đang nhấn vào phím mũi tên đi xuống.
GetAsyncKeyState(VK_LEFT); // Đang nhấn vào phím mũi tên qua trái.
GetAsyncKeyState(VK_RIGHT); // Đang nhấn vào phím mũi tên qua phải.
Mã các phím: https://voer.edu.vn/m/ban-phim-trong-lap-trinh-c-tren-windows/9d383b57
2 Likes