Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Lỗi đọc xâu kí tự từ bàn phím

    Mã:
    #include <iostream.h>
    //Ham doc day ki tu tu ban phim vao xau str cho den khi gap ki tu enter hoac doc het n ki tu thi dung lai
    void getstr( char *str,int n ){
        char tam[21];
        while( 1 ){
            cin.get( str,n );
            if( str[0])
                break;
            else
                cin.ignore();           
        }
        //loai bo cac ki tu con lai trong bo nho dem
        while( 1 ){
            cin.get( tam,20 );
            if( tam[0] == '\0' ){
                cin.ignore();
                break;               
            }       
        }
    }
    int main(){
        char ten[20],tinh[20];
        cout<< "Nhap ten:";
        getstr( ten,20 );  
        cout<< "Nhap tinh:";
        getstr( tinh,20 );
        cout<< endl << ten << "  " << tinh;
        system( "PAUSE" );
        return 0;     
    }
    Em có viết một hàm void getstr( char *str,int n ){} để đọc một xâu kí tự từ bàn phím cho đến khi gặp kí tự enter hoặc đọc hết n kí tự thì dừng lại.
    Khi nhap ten thì ok,nhưng khi Nhap tinh: thì không thể nhập được.Các bác pro giải đáp giúp em lỗi này với.Em cảm ơn trước[IMG]images/smilies/17.gif[/IMG]

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Em không dùng lệnh cin.get() hay getch() vì có nhiều trường hợp người dùng nhập quá n kí tự quy định thì trong bộ nhớ đệm vẫn còn một số kí tự.Nếu sau đó dùng lệnh cin.ignore() thì không thể xóa hết được.Sẽ ảnh hưởng đến việc đọc xâu tiếp theo.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •