30/09/2018, 17:13

Thắc mắc hàm kbhit() trong code block

Em đang gặp vấn đề về hàm kbhit() của thi viện conio.h trong code block

#include <stdio.h>
#include <conio.h>
main()
{
   while (!kbhit())
      printf("You haven't pressed a key.
");

   return 0;
}

Nó không hoạt động trong code block hay cần phải thêm bớt gì mong mọi người chỉ giúp em. Thank ạ

Thành Phạm viết 19:25 ngày 30/09/2018

Nó không hoạt động

Là như nào bạn mình thấy nó chạy đúng mà

Phạm Trung Tính viết 19:14 ngày 30/09/2018

Mình dùng code block 13.12 để chạy, hàm kbhit() này thì theo cách hiểu từ nhiều nguồn của mình là bắt hoạt động của bàn phím, nếu có phím bất kì được nhấn hàm sẽ trả về 1 ngược lại không có phím đươc nhấn thì hàm trả về 0. Như vậy chương trình trên sẽ in ra câu “You haven’t pressed a key.” suốt đến khi nào có 1 phím bất kì được bấm thì dừng chương trình. Nhưng mình bấm tất cả các phím trên bàn phím đều không được.

Thành Phạm viết 19:20 ngày 30/09/2018

Mình lấy nguyên code của bạn chạy thì chạy đúng như miêu tả của bạn mình cũng dùng code block
Mình cũng chưa đoán được là tại sao. Bạn thử kiểm tra lại mấy cái kiểu bộ gõ, caplock, …
Mà bạn dùng trên linux hay windows?

Phạm Trung Tính viết 19:19 ngày 30/09/2018

Mình dùng Win. Đã thử tắt bật caplock, thây đổi bộ gõ như bạn gợi ý nhưng vẫn không thành, đang mày mò viết game con rắn săn mồi

Thành Phạm viết 19:18 ngày 30/09/2018

Chiêu cuối: Restart thử xem, không thì chắc phải chờ các đại ka vào hỗ trợ

Phạm Trung Tính viết 19:29 ngày 30/09/2018

Mình đã làm mọi cách từ chiều tới giờ, lên gg tìm code gốc của hàm kbhit() nhưng vẫn bó tay

Thành Phạm viết 19:18 ngày 30/09/2018

Bạn chụp mấy cái ảnh màn hình để mọi người vào “soi”

Phạm Trung Tính viết 19:15 ngày 30/09/2018

Bạn chụp mấy cái ảnh màn hình để mọi người vào “soi”

Người mới nên không được up hình lên. Mà cậu có chạy khi nhấn phím bất kì nó có dừng chương trình không ?

*grab popcorn* viết 19:29 ngày 30/09/2018

Test ok
Nhấn 1 phím là nó dừng, thoát ct luôn
bạn có thể dùng imgur.com để up ảnh B-)

Thành Phạm viết 19:19 ngày 30/09/2018

Có chứ, bạn cứ chụp xong up lên http://imgur.com/ xong dẫn link vào đây xem được không

Phạm Trung Tính viết 19:25 ngày 30/09/2018

Sao kì vậy nhỉ.
http://imgur.com/8Rsj8J7
Các bạn vào xem giúp tớ thank

Thành Phạm viết 19:16 ngày 30/09/2018

Mình đoán là tạo project chưa chuẩn,có mỗi chỗ đấy khác thôi
Máy mình thế này

Phạm Trung Tính viết 19:20 ngày 30/09/2018

Mình tạo Project rồi nó cũng không nhận được, có phải là do phiên bản không nhỉ ? cậu 10.05 còn tớ 13.12

Thành Phạm viết 19:22 ngày 30/09/2018

Có một khả năng nữa là OS, mình dùng win 7

Phạm Trung Tính viết 19:19 ngày 30/09/2018

Để mình chạy máy ảo test lại thử. Cám ơn bạn

Thành Phạm viết 19:23 ngày 30/09/2018

Mình có post câu hỏi của bạn lên StackOverflow rồi nhá, bạn xem thử xem có giải quyết được k

stackoverflow.com
Pham Thanh

kbhit function in CodeBlock not work in C language

c, codeblocks
asked by Pham Thanh on 03:49PM - 26 May 15

có một số giải đáp là:

You should be using _kbhit() instead of kbhit(). See msdn.microsoft.com/en-us/library/ms235390.aspx

Explanation: This function is not defined as part of the ANSI C/C++ standard. It is generally used by Borland’s family of compilers. It returns a non-zero integer if a key is in the keyboard buffer. It will not wait for a key to be pressed.

You are going to have to wait a while to allow the console to catch up with the very large number of printf() calls you make while no key is pressed. Clearly you can write smarter code.

Thấy cái nào dùng được thì bảo mình nhá, để mình upvote cho họ

Phạm Trung Tính viết 19:20 ngày 30/09/2018

Mình có post câu hỏi của bạn lên StackOverflow rồi nhá, bạn xem thử xem có giải quyết được k

http://stackoverflow.com/questions/30463259/kbhit-function-in-codeblock-not-work-in-c-language

có một số giải đáp là:

You should be using _kbhit() instead of kbhit(). See msdn.microsoft.com/en-us/library/ms235390.aspx

Explanation: This function is not defined as part of the ANSI C/C++ standard. It is generally used by Borland’s family of compilers. It returns a non-zero integer if a key is in the keyboard buffer. It will not wait for a key to be pressed.

You are going to have to wait a while to allow the console to catch up with the very large number of printf() calls you make while no key is pressed. Clearly you can write smarter code.

Thấy cái nào dùng được thì bảo mình nhá, để mình upvote cho họ

_kbhit() mà đã thử rồi. Sau khi test lại HĐH thì chắc do win 8.1 64bit không hợp hay sao chứ mình chạy XP máy ảo thì vẫn được. Cảm ởn sự giúp đỡ nhiệt tình của cậu

Bài liên quan
0