<< 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

Các hàm thành viên get() và getline()

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

Các hàm thành viên khác của istream

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.

Nhập/xuất kiểu an toàn

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Lập trình hướng đối tượng. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10794/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?

Ask