<< Chapter < Page | Chapter >> Page > |
9: {
10: if (Grade>HighestGrade )
11: HighestGrade = Grade;
12: cout<<"Enter grade (enter end-of-file to end): ";
13: }
14: cout<<endl<<"Highest grade is:"<<HighestGrade<<endl;
15: return 0;
16: }
Chúng ta chạy ví dụ 8.8 , kết quả ở hình 8.10
Hình 8.10: Kết quả của ví dụ 8.8
Hàm istream::get() có các dạng sau:
(1) int get();
(2) istream&get(unsigned char&ch);
(3) istream&get(signed char&ch);
(4) istream&get(unsigned char * puch, int len, char delim=’\n’);
(5) istream&get(signed char * psch, int len, char delim=’\n’);
Dạng (1) trích ký tự đơn từ dòng và trả về nó hoặc EOF khi end-of-file trên dòng được bắt gặp.
Dạng (2) và (3) trích một ký tự đơn từ dòng và lưu trữ nó vào ch.
Dạng (4) và (5) trích các ký tự từ dòng cho đến khi hoặc delim được tìm thấy, giới hạn len đạt đến, hoặc end-of-file được bắt gặp. Các ký tự được lưu trong con trỏ chỉ đến mảng ký tự puch hoặc psch.
Ví dụ 8.9: Sử dụng hàm get() dạng (1)
1: //Chương trình 8.9
2: #include<iostream.h>
3: int main()
4: {
5: int Ch;
6: cout<<"Before input, cin.eof() is "<<cin.eof()<<endl
7: <<"Enter a sentence followed by end-of-file:"<<endl;
8: while ( ( Ch = cin.get() ) != EOF)
9: cout.put(Ch);
10: cout<<endl<<"EOF in this system is: "<<Ch<<endl;
11: cout<<"After input, cin.eof() is "<<cin.eof()<<endl;
12: return 0;
13: }
Chúng ta chạy ví dụ 8.9 , kết quả ở hình 8.11
Hình 8.11: Kết quả của ví dụ 8.9
Trong ví dụ 8.9 trên, chúng ta có sử dụng hàm ios::eof() có dạng sau:
int eof();Hàm trả về giá tri khác zero nếu end-of-file bắt gặp.
Ví dụ 8.10: Sử dụng hàm get() dạng (5)
1: //Chương trình 8.10
2: #include<iostream.h>
3:
4: const int SIZE = 80;
5:
6: int main()
7: {
8: char Buffer1[SIZE], Buffer2[SIZE];
9: cout<<"Enter a sentence:"<<endl;
10: cin>>Buffer1;
11: cout<<endl<<"The string read with cin was:"<<endl
12: <<Buffer1<<endl<<endl;
13: cin.get(Buffer2, SIZE);
14: cout<<"The string read with cin.get was:"<<endl
15: <<Buffer2<<endl;
16: return 0;
17: }
Chúng ta chạy ví dụ 8.10 , kết quả ở hình 8.12
Hình 8.12: Kết quả của ví dụ 8.10
Hàm istream::getline() có các dạng sau:
(1) istream&getline(unsigned char * puch, int len, char delim=’\n’);
(2) istream&getline(signed char * psch, int len, char delim=’\n’);
Ví dụ 8.11: Sử dụng hàm getline()
1: //Chương trình 8.11
2: #include<iostream.h>
3:
4: const SIZE = 80;
5:
6: int main()
7: {
8: char Buffer[SIZE];
9: cout<<"Enter a sentence:"<<endl;
10: cin.getline(Buffer, SIZE);
11: cout<<endl<<"The sentence entered is:"<<endl
12: <<Buffer<<endl;
13: return 0;
14: }
Chúng ta chạy ví dụ 8.11 , kết quả ở hình 8.13
Hình 8.13: Kết quả của ví dụ 8.11
Hàm ignore():
istream&ignore(int nCount = 1, int delim = EOF);
Trích và loại bỏ lên đến nCount ký tự. Việc trích dừng nếu delim được bắt gặp hoặc nếu end-of-file bắt gặp.
Hàm putback():
istream&putback(char ch);
Đặt một ký tự ngược lại dòng nhập.
Hàm peek():
int peek();
Hàm trả về ký tự kế tiếp mà không trích nó từ dòng.
C++ cung cấp nhập/xuất kiểu an toàn (type-safe). Các toán tử<<và>>được đa năng hóa để nhận các mục dữ liệu của kiểu cụ thể. Nếu dữ liệu bất ngờ được xử lý, các cờ hiệu lỗi khác nhau được thiết lập mà người dùng có thể kiểm tra để xác định nếu một thao tác nhập/xuất thành công hoặc thất bại. Phần sau chúng ta sẽ khảo sát kỹ hơn.
Notification Switch
Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?