Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Cách xử lý việc bắt phím bấm trong vòng lặp có sử dụng Sleep() trong Dev-C?

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    35

    Mặc định Cách xử lý việc bắt phím bấm trong vòng lặp có sử dụng Sleep() trong Dev-C?

    Mình sử dụng system("cls") + Sleep(500) để vẽ lại màn hình console mỗi 0.5 s

    C++ Code:
    1. while (1)
    2. {
    3.       system("cls");
    4.       // vẽ màn hình mới
    5.      Sleep(500);
    6. }

    Nhưng mà trong vòng lặp while đó mình có sử dụng lệnh getch() để bắt sự kiện 1 phím đc bấm

    C++ Code:
    1. while (1)
    2. {
    3.       system("cls");
    4.       // vẽ màn hình mới
    5.      char s=getch();
    6.      Sleep(500);
    7. }

    Vì vậy nên việc sử dụng Sleep(500) trở nên vô nghĩa khi lện getch() bắt cả chương trình dừng lại cho đến khi có phím mới bấm vào.
    Các bạn có cách j giúp mình vừa bắt đc sự kiện phím bấm vừa liên tục vẽ lại màn hình sau 0.5s ko ?
    thương dân như con

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Theo ngu kiến của mình là bạn phải động đến mấy cái gọi là :Handle , Thread , process ... để thực hiện ý đồ này
    2 tiến trình cùng dùng chung 1 tài nguyên là cái màn hình console đen đen của chương trình đó. 1 tiến trình có nhiệm vụ quét 0.5s / lần và tiến trình kia để bấm nút

    Cái này bạn qua bên box VC++ để được chỉ dẫn cụ thể hơn
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    35

    thank bạn nha
    thương dân như con

  4. #4
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Chỉ mới là thread với process thì việc gì đã phải đụng đến VC. C++11 và C11 đều có thể lập trình thread tốt.

  5. #5
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    dùng hàm kbhit thay cho getch()

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Mặc định Cách xử lý việc bắt phím bấm trong vòng lặp có sử dụng Sleep() trong Dev-C?

    @ chủ topic:
    ý bạn là dạng dạng thế này hả
    C++ Code:
    1. #include "iostream"
    2. using namespace std;
    3. #include "conio.h"
    4. #include "windows.h"
    5.  
    6.  
    7. void main(void)
    8. {
    9.     int i=0;
    10.     while(!kbhit())
    11.     {
    12.         system("cls");
    13.         printf("%d",i);
    14.         i++;
    15.         Sleep(100);
    16.  
    17.     }
    18.     printf("Chuong trinh ket thuc do nguoi dung vua an 1 nut");
    19.     getch();
    20. }

    @pkthanh92 : sr vì ăn cắp ý tưởng của bạn


    P/S : tớ thấy cách làm dùng cls kiểu này ko phải là bestway đâu, mà là bad way đó, có nhiều cách tốt hơn nhiều!
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    02 2009
    Bài viết
    35

    cám ơn các bạn nha, mình làm đc rồi
    @langman: có cách best nữa hả bạn, như nào nhỉ
    thương dân như con

  8. #8
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    dùng hàm WriteConsoleOutput .

Các đề tài tương tự

  1. Kỹ thuật C++ Nhập và gán 1 kí tự trong vòng lặp sao cho khi không nhập kí tự thì vòng lặp lại chạy tiếp.
    Gửi bởi note194 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-08-2013, 09:11 PM
  2. Lập trình C++ giá trị của xâu trong vòng lặp và ngoài vòng lặp khác nhau
    Gửi bởi virus93ttll trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 17
    Bài viết cuối: 14-05-2011, 02:43 PM
  3. hàm sleep(int n) trong visual c++ ?
    Gửi bởi nguyenduchuy9154 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 10-05-2011, 09:44 AM
  4. Sleep trong dll C++ có nên không?
    Gửi bởi hsagduag trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 13-04-2011, 10:38 AM
  5. Code cài đặt DSLK đơn vòng và kép vòng trên C++. Thêm 1 phần tử sau 1 phần tử trong DSLK đơn/kép
    Gửi bởi hoanghieu.fit.hcmus trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 09-04-2011, 02:54 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn