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

Đề tài: Lỗi khi vừa nhập vừa kiểm tra một chuỗi có phải là chuỗi số nguyên hay không?

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    0

    Red face Lỗi khi vừa nhập vừa kiểm tra một chuỗi có phải là chuỗi số nguyên hay không?

    Đây là đoạn code của mình.
    Code:
    #include <conio.h>
    #include <stdio.h>
    
    void nhap_chuoi_int(char s[])
    {
    	int c, i = 0;
    	c = getche(); // Đọc một kí tự từ bàn phím
    	while(c!='\r'||i==0){
    		if('0'<=c&&c<='9'){ // Kiểm tra có phải số hay không
    			s[i++] = c;
    		}else if(c=='\b'&&i>0){ 
    			printf(" \b"); // Kiểm tra nếu là Backspace thì xóa phần tử trước đó
    		}else{
    			printf("\b \b"); // Không cho nhận bất cứ kí tự nào ngoài số
    		}
    		c = getche(); // Đọc kí tự tiếp theo
    	}
    	s[i] = '\0'; // Thêm kí tự kết thúc chuỗi
    	printf("\n");
    }
    
    int main()
    {
    	char s[1000];
    	printf("NHAP MOT SO NGUYEN: ");
    	nhap_chuoi_int(s);
    	printf("SO BAN VUA NHAP LA: ");
    	puts(s);
    	return 0;
    }
    Mục đích của đoạn code là chỉ cho phép nhập một chuỗi số nguyên từ bàn phím, nếu gặp kí tự không phải số thì không hiện ra. Sau khi nhập xong nhấ Enter để kết thúc và xuất chuỗi đã nhập.

    Đoạn code hoạt chỉ hoạt động tốt khi chỉ nhập các kí tự BÌNH THƯỜNG, còn nếu gặp các phím điều khiển lại bị lỗi.
    Ví dụ: Khi nhấn Backspace thì nó sẽ xóa nguyên hàng. Hoặc khi nhấn Enter mà chưa nhập gì thì con trỏ văn bản quay về đầu hàng, khi nhập sẽ ghi đè lên các chữ đã có sẵn. Và còn rất nhiều lỗi liên quan đến các phím điều khiển nữa.
    Mong các bạn cho mình ý kiến khắc phục triệt để các lỗi này. Cám ơn nhiều.

  2. #2
    Ngày gia nhập
    03 2012
    Bài viết
    27

    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. int main(){
    6.     string s;
    7.     cout<<"Nhap chuoi:";
    8.     cin>>s;
    9.     for(int i=0;i<s.length();i++)
    10.     {
    11.         if(s[i]<'0' || s[i]>'9'){
    12.             cout<<"Khong phai so."<<endl;
    13.             return 0;
    14.         }
    15.     }
    16.     cout<<"La so."<<endl;
    17.     return 0;
    18. }

    Y!M: doxuanthangvn
    Skype: doxuanthangvnn
    Email: doxuanthang@hotmail.com

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

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  3. Nhập chuỗi họ tên, cắt chuỗi ra từng thành phần?
    Gửi bởi ukyokg 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: 16-12-2010, 06:18 PM
  4. Sắp xếp chuỗi theo tổng phần tử trong chuỗi
    Gửi bởi yoinb trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 26-04-2010, 09:20 PM
  5. Có cách nào kiểm tra một chuỗi trong textbox có phải chuỗi tiếng Việt có dấu ko?
    Gửi bởi bachhaiduong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 26-04-2010, 07:52 PM

Tags của đề tài này

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