Thứ Tư, 27 Tháng Mười Một 2024
Trang chủLập trìnhLập trình C/C++Hàm Kbhit() - Lệnh kiểm tra có sự kiện nhấn phím trong...

Hàm Kbhit() – Lệnh kiểm tra có sự kiện nhấn phím trong C/C++

DANH SÁCH BẢI VIẾT
Viết hàm thay đổi vị trí dấu nhái trong màn hình console C/C++
Lệnh tạm dừng và lệnh tạm dừng trong khoảng thời gian lập trình C/C++
Lệnh xóa màn hình Console trong C/C++ – Cách Reset màn hình Console
Viết hàm thay đổi màu chữ trong màn hình console C/C++
Viết hàm thay đổi kích thước màn hình console C/C++
Tạo âm thanh bíp trong C/C++ với hàm Beep
Hàm getch() - Lệnh bắt một phím nhấn
Hàm Kbhit() – Lệnh kiểm tra có sự kiện nhấn phím
Tạo chuyển động cơ bản trong Console C/C++ – Điều khiển chuyển động
Tỏ tình Crush bằng code C/C++ – I LOVE YOU ngôn ngữ C/C++
Xây dựng demo Code Vượt vật cản trên màn hình Console C/C++
Lập trình game Rắn săn mồi trên C/C++ màn hình Console(Demo Snake
Lập trình ứng dụng giúp bé học toán trên C/C++ màn hình Console
Lập trình game Cờ Caro trên C/C++ màn hình Console(Demo Game)

Làm thế nào để phát hiện được khi nào thì có phím nhấn từ bàn phím trong lập trình C/C++, vậy bài viết này hãy cùng TUI CÓ CÁCH tìm hiểu nhé!

Hàm Kbhit()

Phát hiện có sự kiện phím nhấn trong C/C++ ta sử dụng hàm kbhit() trong thư viện conio.h.

Như tiêu đề đã đề cập là hàm phát hiện sự kiện phím nhấn thì tất nhiên nhiệm vụ của hàm này sẽ là phát hiện khi nào thì có sự kiện người dùng nhấn phím.

Nếu hiểu đúng bản chất thì hàm này là hàm kiểm tra xem bộ nhớ đệm nếu bộ nhớ đệm còn lưu chữ ký tự thì hàm trả về true, và ngược lại nếu bộ nhớ đệm là rỗng thì sẽ trả về false.

Như vậy khi ta sử dụng kết hợp với hàm getch() trong bài viết trước thì chúng ta hoàn toàn có thể biến lệnh này thành một lệnh kiểm tra sự kiện nhấn phím.

Mình sẽ có code mẫu ví dụ minh họa như sau:

#include <stdio.h>
#include <conio.h>
#include <Windows.h> //Khai báo để dùng hàm Sleep
int main()
{
	int i = 0;
	while(true){
		if(kbhit()){ //Hàm kbhit kiểm tra bộ nhớ đệm

			getch();//Hàm lấy ký tự từ bộ nhớ đệm

           /* =>2 hàm này khi kết hợp với nhau hàm kbhit sẽ kiểm tra bộ nhớ đệm
 nếu còn ký tự hàm getch sẽ lấy nó ra lúc này nó sẽ trở thành sự kiện phát
 hiện có phím bấm */

			printf("\nPHAT HIEN NHAN PHIM\n");
			Sleep(1000);  //Hàm tạm dừng trong 1000ms
		}
		printf("%d ", i++);
		Sleep(200); //Hàm tạm dừng trong 200ms
	}
}

Chạy thử chương trình trên, nó sẽ in ra dãy số liên tục đến khi nào mà bạn nhấn 1 phấm bấm bất kì màn hình sẽ hiện lên dòng chữ là “PHAT HIEN NHAN PHIM” sau đó lại tiếp tục in dãy số.

Hàm Kbhit() - Lệnh kiểm tra có sự kiện nhấn phím trong C/C++

Và nếu bạn muốn biết ký tự vừa nhấn là gì, vậy ta chỉ cần gắn một biến vào hàm lấy ký tự(hàm getch), mình sửa lại một chút code như sau:

#include <stdio.h>
#include <conio.h>
#include <Windows.h>
int main()
{
	int i = 0;
	while(true){
		if(kbhit()){
			char c = getch(); //Lấy ký tự từ bộ nhớ đệm và gắn vào biến c
			printf("\nBAN vua bam phim: %c\n", c); //in biến c ra màn hình
			Sleep(1000);
		}
		printf("%d ", i++);
		Sleep(200);
	}
}  

Trong bài viết tiếp theo mình sẽ hướng dẫn tạo hiệu ứng chuyển động và điều khiển hướng đi của chuyển động dựa vào bài viết này kết hợp với bài viết Viết hàm thay đổi vị trí dấu nhái trong màn hình console C/C++. Tiếp theo dõi nhé!

Cảm ơn bạn đã đọc bài viết, chúc bạn học tốt! sớm trở thành một Pro Dev.

[Xem tất cả bài viết chủ đề C/C++ tại đây]

5 3 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x