<< Chapter < Page Chapter >> Page >

Việc xử lý file của C++ sử dụng các lớp ifstream để thực hiện các thao tác nhập file, ofstream cho các thao tác xuất file, và fstream cho các thao tác nhập/xuất file. Lớp ifstream kế thừa từ istream, ofstream lớp kế thừa từ ostream, và lớp fstream kế thừa từ iostream.

Hình 8.2: Một phần của phân cấp lớp dòng nhập/xuất với việc xử lý file.

Dòng xuất

ostream của C++ cung cấp khả năng để thực hiện xuất định dạng và không định dạng. Các khả năng xuất bao gồm: xuất các kiểu dữ liệu chuẩn với toán tử chèn dòng; xuất các ký tự với hàm thành viên put(); xuất không định dạng với hàm thành viên write; xuất các số nguyên dạng thập phân, bát phân và thập lục phân; xuất các giá trị chấm động với độ chính xác khác nhau, với dấu chấm thập phân, theo ký hiệu khoa học và theo ký hiệu cố định; xuất dữ liệu theo các trường độn thêm các ký tự chỉ định; và xuất các mẫu tự chữ hoa theo ký hiệu khoa học và ký hiệu thập lục phân.

Toán tử chèn dòng

Dòng xuất có thể được thực hiện với toán tử chèn dòng, nghĩa là toán tử<<đã đa năng hóa. Toán tử<<đã được đa năng hóa để xuất các mục dữ liệu của các kiểu có sẵn, xuất chuỗi, và xuất các giá trị con trỏ.

Ví dụ 8.1: Minh họa xuất chuỗi sử dụng một lệnh chèn dòng.

1: //Chương trình 8.1:Xuất một chuỗi sử dụng chèn dòng

2: #include<iostream.h>

3:

4: int main()

5: {

6: cout<<"Welcome to C++!\n";

7: return 0;

8: }

Chúng ta chạy ví dụ 8.1 , kết quả ở hình 8.3

Hình 8.3: Kết quả của ví dụ 8.1

Ví dụ 8.2: Minh họa xuất chuỗi sử dụng nhiều lệnh chèn dòng.

1: //Chương trình 8.2:Xuất một chuỗi sử dụng hai chèn dòng

2: #include<iostream.h>

3:

4: int main()

5: {

6: cout<<"Welcome to";

7: cout<<"C++!\n";

8: return 0;

9: }

Chúng ta chạy ví dụ 8.2 , kết quả ở hình 8.4

Hình 8.4: Kết quả của ví dụ 8.2

Hiệu quả của chuỗi thoát \n (newline) cũng đạt được bởi bộ xử lý dòng (stream manipulator) endl (end line).

Ví dụ 8.3:

1: //Chương trình 8.3:Sử dụng bộ xử lý dòng endl

2: #include<iostream.h>

3:

4: int main()

5: {

6: cout<<"Welcome to";

7: cout<<"C++!";

8: cout<<endl;

9: return 0;

10: }

Chúng ta chạy ví dụ 8.3 , kết quả ở hình 8.5

Hình 8.5: Kết quả của ví dụ 8.3

Bộ xử lý dòng endl đưa ra một ký tự newline, và hơn nữa, flush vùng đệm xuất (nghĩa là tạo ra vùng đệm xuất được xuất ngay lập tức kể cả nó chưa đầy). Vùng đệm xuất cũng có thể được flush bằng:

cout<<flush;

Ví dụ 8.4: Các biểu thức có thể xuất

1: //Chương trình 8.4: Xuất giá trị biểu thức.

2: #include<iostream.h>

3:

4: int main()

5: {

6: cout<<"47 plus 53 is ";

7: cout<<(47+53);

8: cout<<endl;

9: return 0;

10: }

Chúng ta chạy ví dụ 8.4 , kết quả ở hình 8.6

Hình 8.6: Kết quả của ví dụ 8.4

Nối các toán tử chèn dòng và trích dòng

Các toán tử đã đa năng hóa<<và>>có thể được theo dạng nối vào nhau.

Ví dụ 8.5: Nối các toán tử đã đa năng hóa

1: //Chương trình 8.5: Nối toán tử<<đã đa năng hóa.

2: #include<iostream.h>

3:

4: int main()

5: {

6: cout<<"47 plus 53 is "<<(47+53)<<endl;

7: return 0;

8: }

Chúng ta chạy ví dụ 8.5 , kết quả ở hình 8.7

Hình 8.7: Kết quả của ví dụ 8.5

Nhiều chèn dòng ở dòng 6 trong ví dụ 8.5 được thực thi nếu có thể viết:

(((cout<<"47 plus 53 is ")<<(47+53))<<endl);

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