Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Cách nhận biết mình nhập "up key" và "down key" (lên xuống)

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

    Wink Cách nhận biết mình nhập "up key" và "down key" (lên xuống)

    Mình đang làm 1 chương trình có menu 1 chiều. dựa theo ý tưởng của thắng trần

    http://forums.congdongcviet.com/showthread.php?t=4423


    nhưng mình dùng BC3.01 và hàm getch() ko hề nhận bít được các phím lên xuống :| .

    vậy mình nên dùng hàm nào để nhập được phím lên , xuống trong bàn phím ???
    ^_,^

    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

  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Mình chưa dùng BC , nhưng dùng TC rồi.
    Nếu trong TC thì:
    C Code:
    1.  
    2. ch=getch();
    3.           switch(ch)
    4.            {
    5.         //up
    6.         case 72:
    7.                            ...
    8.            break;
    9.         //down
    10.         case 80:
    11.                            ...
    12.                              break;
    13.         //left
    14.         case 75:
    15.                            ...
    16.             break;
    17.         //right
    18.         case 77:
    19.                           ...
    20.                              break;
    21.                        }
    Không biết có phải theo ý của bạn không?
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    Trích dẫn Nguyên bản được gửi bởi NT_OnlyLove Xem bài viết
    ...

    [/CODE]
    Không biết có phải theo ý của bạn không?
    Mình test thử 1 ct như sau . Khj chạy rồi nhập phím lên hoặc xuống đều trả về giá trị là 0 hết :| Thật là chả hiểu nổi


    C Code:
    1. #include "stdio.h"
    2. #include "conio.h"
    3. void main()
    4.     {
    5.         char key;
    6.         clrscr();
    7.         printf("Nhap : ");
    8.         key=getch();
    9.         printf("\n\n\n\n ma so la : %d ", key);
    10.                 getch();
    11.     }
    ^_,^

    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

  4. #4
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    Mình test thử 1 ct như sau . Khj chạy rồi nhập phím lên hoặc xuống đều trả về giá trị là 0 hết :| Thật là chả hiểu nổi


    C Code:
    1. #include "stdio.h"
    2. #include "conio.h"
    3. void main()
    4.     {
    5.         char key;
    6.         clrscr();
    7.         printf("Nhap : ");
    8.         key=getch();
    9.         printf("\n\n\n\n ma so la : %d ", key);
    10.                 getch();
    11.     }
    Đúng rồi, vì nó là các phím đặc biệt và trả về 0.(Mình chỉ hiểu vậy)
    Nếu bạn sử dụng để nhận biết nó thì đoạn code trên là hoàn toàn đúng rồi.
    Ngày xưa khi làm mấy cái trò chơi ( như đua xe ôtô, hứng bóng...) mình cũng test như vậy và kết quả cũng là 0, sau mới biết là các mã trên.(Nó trùng với một vài phím đó as p,...).
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    @ nờ tê on li lớp : cám ơn bạn :| mình cần thận quá nên làm riêng 1 ct để tét mã các phím đâm ra lao vào bóng tối ko có lối ra .
    ^_,^

    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

  6. #6
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Mặc định Cách nhận biết mình nhập "up key" và "down key" (lên xuống)

    Trả về 0 tức nó là phím đặc biệt. Bạn phải làm như sau:

    C Code:
    1. char ch;
    2.  
    3. ch = getch();
    4. if(ch == 0) {
    5.   ch = getch();
    6.   switch(ch) {
    7.   case 72:
    8.    break;
    9. ...
    10.   }
    11. }

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

    Mình thử lại với code dưới này mà vẫn ko được!!!


    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main(void)
    {
     
    clrscr();
     
    char ch=0;
     if (
    ch==0) {ch=getch();}
     switch (
    ch)
     {   case 
    80 printf("aaaaa");break;
     }

    ^_,^

    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

  8. #8
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    Mình thử lại với code dưới này mà vẫn ko được!!!


    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main(void)
    {
     
    clrscr();
     
    char ch=0;
     if (
    ch==0) {ch=getch();}
     switch (
    ch)
     {   case 
    80 printf("aaaaa");break;
     }

    Như vậy sai là đúng rồi.(vì theo mình nhớ thì getch(); sẽ xóa khỏi buffer khi gọi xong).
    Bạn phải lồng cái swicht(ch) vào khối lệnh if mới được.
    Như Hiếu làm ấy là được mà.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    mình thử lại với code này cũng ko được

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main(void)
    {
     
    clrscr();
     
    char ch=0;
     if (
    ch==0
                {   
    ch=getch();
                     switch (
    ch)
                         { case 
    80 printf("aaaaa");break;
                         }
                }

    ^_,^

    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

  10. #10
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Cái này dễ lắm à . Bạn cứ hiểu là ký tự lên xuống qua lại là những ký tự có mã đặc biệt , chúng phải được gọi là " cặp mã " thì chính xác hơn . Cụ thễ như sau : phím lên là 0 72 , phím xuống là 0 85 , trái là 0 75 , phải là 0 77 . Code sau sẽ nhận phím bấm qua lại trái phải trên bàn phím và in ra câu chào tương ứng

    C Code:
    1. void main()
    2. {
    3.  char c1,c2;
    4.  while(1)
    5.  {
    6.   c1=getch();
    7.   if(c1==0)
    8.   {
    9.    c2=getch();
    10.    if(c2==72) printf("ban da bam phim len");  
    11.    if(c2==85) printf("ban da bam phim xuong");  
    12.    if(c2==75) printf("ban da bam phim trai");  
    13.    if(c2==77) printf("ban da bam phim phai");    
    14.   }
    15.  }
    16. }
    ttecak ?

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  3. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  4. Lập trình C++ khai báo biến "int" "float" khác nhau như thế nào? (giúp em gấp)
    Gửi bởi hacphieu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 02-04-2011, 10:57 AM
  5. Lập trình C chuyển bài toán "tổng số nguyên tố" sang "xuất nhập file"
    Gửi bởi long221091 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 23-04-2010, 11:11 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