Phương thức get() có 3 dạng: Dạng 1: int cin.get();

Một phần của tài liệu đồ án tốt nghiệp cơ sở của lập trình hướng đối tượng (Trang 137 - 138)

- Các biến truyền cho danh sách tham số của hàm phải chính xác với kiểu kha

1.3.1. Phương thức get() có 3 dạng: Dạng 1: int cin.get();

Dạng 1: int cin.get();

Dùng để đọc một ký tự (kể cả khoảng trắng). Dạng 2: istream& cin.get(char &ch);

Dùng để đọc một ký tự (kể cả khoảng trắng) và đặt vào một biến kiểu char được tham chiếu bởi ch.

Dạng 3: istream& cin.get(char *str, int n, char d = ‘\n’);

Dùng để đọc một dãy ký tự (kể cả khoảng trắng) và đưa vào vùng nhớ do str trỏ tới. Quá trình đọc kết thúc khi xảy ra một trong hai tình huống sau:

+ Gặp ký tự giới hạn (cho trong d). Ký tự giới hạn mặc định là ‘\n’. + Đã nhận đủ (n-1) ký tự.

Chú ý:

+ Ký tự kết thúc chuỗi ‘\0’ được bổ sung vào cuối chuối nhận được.

+ Ký tự giới hạn vẫn còn lại trên dòng nhập để dành cho các lệnh nhận tiếp theo. + Ký tự <Enter> còn lại trên dòng nhập có thể làm trơi phương thức get() dạng 3. Ví

dụ: Xét đoạn chương trình:

char hoten[25], diachi[50], quequan[30] ; cout<<”\nHọ tên:”; cin.get(ht,25); cout<<”\nĐịa chỉ : ”; cin.get(diachi,50); cout<<”\nQuê quán : ”; cin.get(quequan,30);

cout <<”\n” <<hoten<<” ”<<diachi<<” ”<<quequan;

Đoạn chương trình dùng để nhập họ tên, dịa chỉ và quê quán. Nếu gõ vào Nguyen van X <Enter> thì câu lệnh get đầu tiên sẽ nhận được chuỗi “Nguyen van X” cất vào

mảng hoten. Ký tự <Enter> cịn lại sẽ làm trơi 2 câu lệnh get tiếp theo. Do đó câu lệnh cuối cùng sẽ chỉ in ra Nguyen van X.

Để khắc phục tình trạng trên, có thể dùng một trong các cách sau:

+ Dùng phương thức get() dạng 1 hoặc dạng 2 để lấy ra ký tự <Enter> trên dòng nhập trước khi dùng get (dạng 3).

+ Dùng phương thức ignore để lấy ra một số ký tự khơng cần thiết trên dịng nhập trước khi dùng get dạng 3. Phương thức này viết như sau:

cin.ignore(n) ; // Lấy ra (loại ra hay loại bỏ) n ký tự trên dòng nhập.

Như vậy để có thể nhập được cả quê quán và cơ quan, cần sửa lại đoạn chương trình trên như sau:

char hoten[25], diachi[50], quequan[30] ; cout<<”\nHọ tên : ”;

cin.get(hoten,25);

cin.get(); // Nhấn < Enter> cout<<”\nĐịa chỉ : ”; cin.get(diachi,50);

ignore(1); // Bỏ qua <Enter> cout<<”\nQuê quán : ”; cin.get(quequan,30);

cout <<”\n” <<hoten<<” ”<<diachi<<” ”<<quequan;

Một phần của tài liệu đồ án tốt nghiệp cơ sở của lập trình hướng đối tượng (Trang 137 - 138)

Tải bản đầy đủ (DOC)

(150 trang)
w