Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: Kiểm soát phím nhập???

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

    Question Kiểm soát phím nhập???

    Các bác cho em hỏi cách kiểm soát phím nhập vào 1 biến.
    VD: khai báo 1 biến:
    int so;
    làm thế nào khi nhập chỉ cho phép người ta nhập các phím 0123456789 còn các phím khác ko được nhập.
    thanks!

  2. #2
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Bạn sử dụng vòng lặp do while

    PHP Code:
    int so;
    do
    {
          
    cout<<"Nhap vao so: ";
          
    cin>> so;
    }while(
    so || so 0); 
    Đã được chỉnh sửa lần cuối bởi iamvtn : 19-05-2007 lúc 12:19 AM. Lý do: Bổ sung

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

    Thanks! nhưng chưa ổn bạn à.
    Nếu dùng đoạn code trên thì khi bấm 1 ký tự khác ngoài số 0->9 sẽ bị cho vào vòng lặp vô hạn lệnh:
    cout<<"Nhap vao so: ";
    còn lệnh cin>>số nó dường như bỏ qua không cho nhập lại.

  4. #4
    Ngày gia nhập
    02 2007
    Bài viết
    12

    Tui cũng thử 1 cách sau:
    Code:
    int so,test;
    char x[5];
    while(1)
    {
    	cout<<"\nNhap so: ";
    	fflush(stdin); gets(x);
    	for(int i=0;i<strlen(x);i++)
    		if(x[i]=='0'||x[i]=='1'||x[i]=='2'||x[i]=='3'
    	   		||x[i]=='4'||x[i]=='5'||x[i]=='6'||x[i]=='7'
    	   		||x[i]=='8'||x[i]=='9')
    		{	test=1;
    		}
    		else
    		{	test=0;
    			break;
    		}
    	if(test==1)
    		break;
    }
    so=int(x);
    Nhưng nó vẫn chưa ổn vì khi chuyển xâu sang kiểu int nó là 1 giá trị khác với giá trị mình nhập vào.

  5. #5
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Tớ có một bài về Menu thế này. Nó không cho nhập những số > 4 và < 0.
    Nhưng tớ ko thể sửa cho nó lên từ 0 -> 9 được vì nó bắt phím trực tiếp 1 con số luôn.

    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    int menu()
    {
      
    int c;
      
    printf("\n----- Menu -----");
      
    printf("\n1. Hinh tam giac");
      
    printf("\n2. Hinh tron");
      
    printf("\n3. Hinh vuong");
      
    printf("\n4. Hinh chu nhat");
      
    printf("\n0. Thoat");
      
    printf("\n----------------");
      
    printf("\nChon muc : ");
      do {
        
    getch();
      } while (
    c>'4' || c<'0');
      
    putc(cstdout);
      return 
    -'0';
    }

    void hinhtamgiac()
    {
      
    int abc;
      
    float p;

      
    printf("\n\nNhap vao ba canh tam giac : ");
      
    scanf("%d%d%d", &a, &b, &c);
      
    printf("\nChu vi tam giac = %d"a+b+c);
      
    = (float)(c)/2;
      
    printf("\nDien tich tam giac = %lf"sqrt(p*(p-a)*(p-b)*(p-c)));
      
    getch();
    }

    void hinhtron()
    {
      
    int r;

      
    printf("\n\nNhap vao ban kinh hinh tron : ");
      
    scanf("%d", &r);
      
    printf("\nChu vi hinh tron = %f"M_PI r);
      
    printf("\nDien tich hinh tron = %f"M_PI r);
      
    getch();
    }

    void hinhvuong()
    {
      
    int a;

      
    printf("\n\nNhap vao canh hinh vuong : ");
      
    scanf("%d", &a);
      
    printf("\nChu vi hinh tron = %d"a);
      
    printf("\nDien tich hinh vuong = %d"a);
      
    getch();
    }

    void hinhchunhat()
    {
      
    int ab;

      
    printf("\n\nNhap vao cac canh hinh chu nhat : ");
      
    scanf("%d%d", &a, &b);
      
    printf("\nChu vi hinh chu nhat = %d"* (a+b));
      
    printf("\nDien tich hinh chu nhat = %d"a);
      
    getch();
    }

    void main()
    {
      
    int chon;
      do {
        
    chon menu();
        switch(
    chon)
        {
          case 
    hinhtamgiac();
                   break;
          case 
    hinhtron();
                   break;
          case 
    hinhvuong();
                   break;
          case 
    hinhchunhat();
                   break;
        }
      } while (
    chon != 0);


  6. #6
    Ngày gia nhập
    03 2007
    Bài viết
    6

    Mặc định Kiểm soát phím nhập???

    Dùng lệnh CASE thử xem.
    switch(so);
    {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    break;
    default:
    printf("\n");
    }

  7. #7
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi takeonme Xem bài viết
    Dùng lệnh CASE thử xem.
    switch(so);
    {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    break;
    default:
    printf("\n");
    }
    KO được đâu bạn ơn vì switch case dùng để chọn lựa thôi làm sao mà giới hạn được.

  8. #8
    Ngày gia nhập
    02 2007
    Bài viết
    12

    iamvtn ơi, trong bài menu của cậu thì chỉ có thể bấm duy nhất một phím.
    Ý tớ muốn hỏi ở bài này là:
    Giả sử có một biến đơn giá:
    long dgia;
    Tớ muốn nhập vào đơn giá đó là 15000 chẳng hạn. Bây giờ làm sao để kiểm soát người ta chỉ được nhập vào những con số.

  9. #9
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi storm006 Xem bài viết
    iamvtn ơi, trong bài menu của cậu thì chỉ có thể bấm duy nhất một phím.
    Ý tớ muốn hỏi ở bài này là:
    Giả sử có một biến đơn giá:
    long dgia;
    Tớ muốn nhập vào đơn giá đó là 15000 chẳng hạn. Bây giờ làm sao để kiểm soát người ta chỉ được nhập vào những con số.
    Tớ hiểu rồi để tớ suy nghĩ đã, chưa nghĩ ra cách nào cả. Có cao thủ nào vào đây chỉ giáo với, tớ cũng thấy cái này hay hay đấy.

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

    ví dụ:
    int s;
    ->cho nhập s
    if(!s)
    thông báo nhập sai và cho nhập lại.

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

  1. Sửa máy tính, cài đặt windows, phần mềm tại nhà nhanh nhất, rẻ nhất, hiệu quả nhất …
    Gửi bởi hopluccc trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 08-07-2013, 02:07 PM
  2. Trả lời: 12
    Bài viết cuối: 25-10-2012, 02:48 AM
  3. Bài tập C++ NHập mảng một chiều gồm n phần tử kết thúc nhập khi nhập một chữ cái
    Gửi bởi thienthanoze trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 15
    Bài viết cuối: 09-07-2012, 10:10 PM
  4. Bài tập C++ Viết phương trình nhập vào 1 chuỗi số.Hãy nhập vào 1 số.Đếm xem có bao nhiêu chữ số bạn vừa nhập
    Gửi bởi namtuocdn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 16-10-2011, 10:39 AM
  5. Bài tập C++ Nhập mảng 1 chiều, nếu phần tử nhập trùng nhau thì bắt nhập lại
    Gửi bởi danielh 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: 09-07-2011, 03:35 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