<< Chapter < Page Chapter >> Page >

Dạng (3) xây dựng một đối tượng ofstream và gắn (attach) với một file mở.

Dạng (4) xây dựng một đối tượng ofstream mà liên kết với đối tượng filebuf. Đối tượng filebuf được gắn tới file mở và vùng dành riêng.

 Constructor của lớp ifstream:

(1) ifstream();

(2) ifstream(const char* szName,int nMode=ios::in,int nProt=filebuf::openprot);

(3) ifstream(int fd);

(4) ifstream(filedesc fd, char* pch, int nLength);

Dạng (1) xây dựng một đối tượng ifstream mà không mở file.

Dạng (2) xây dựng một đối tượng ifstream và mở file đã chỉ định.

Dạng (3) xây dựng một đối tượng ifstream và gắn (attach) với một file mở.

Dạng (4) xây dựng một đối tượng ofstream mà liên kết với đối tượng filebuf. Đối tượng filebuf được gắn tới file mở và vùng dành riêng.

 Constructor của lớp fstream:

(1) fstream();

(2) fstream(const char* szName,int nMode,int nProt=filebuf::openprot);

(3) fstream(int fd);

(4) fstream(filedesc fd, char* pch, int nLength);

Dạng (1) xây dựng một đối tượng fstream mà không mở file.

Dạng (2) xây dựng một đối tượng fstream và mở file đã chỉ định.

Dạng (3) xây dựng một đối tượng fstream và gắn (attach) với một file mở.

Dạng (4) xây dựng một đối tượng ofstream mà liên kết với đối tượng filebuf. Đối tượng filebuf được gắn tới file mở và vùng dành riêng.

Nếu chúng ta sử dụng constructor ở dạng (1) thì chúng ta dùng hàm open() để mở file:

 Hàm ofstream::open():

void open(const char* szName,int nMode=ios::out,int nProt=filebuf::openprot);

Hàm ifstream::open():

void open(const char* szName,int nMode=ios::in,int nProt=filebuf::openprot);

Hàm fstream::open():

void open(const char* szName,int nMode,int nProt=filebuf::openprot);

Để đóng file chúng ta dùng hàm close(), hàm này ở các lớp ifstream, ofstream, và fstream đều có dạng:

void close();

Các hàm liên quan đến con trỏ file:

  • Lớp istream:

Hàm seekg(): (seek get)

(1) istream&seekg(streampos pos);

(2) istream&seekg(streamoff off,ios::seek_dir dir);

Trong đó:

+ pos: Vị trí mới. streampos là tương đương typedef với long.

+ off: Giá trị offset mới. là tương đương typedef với long.

+ dir: hướng seek. Có một trong các trị sau:

ios::begin Seek từ bắt đầu của dòng.
ios::cur Seek tư øvị trí hiện hành của dòng
ios::end Seek từ cuối của dòng

Hàm tellg(): (tell get)

streampos tellg();

Hàm trả về vị trí hiện hành của con trỏ file.

  • Lớp ostream:

Hàm seekp(): (seek put)

(1) ostream&seekp(streampos pos);

(2) ostream&seekp(streamoff off,ios::seek_dir dir);

Hàm tellp(): (tell put)

streampos tellp();

Hàm trả về vị trí hiện hành của con trỏ file.

Nhập/xuất file văn bản

Nếu dòng được gắn với file văn bản, việc nhập/xuất file được thực hiện một cách đơn giản bởi các toán tử>>và<<, giống như khi chúng ta làm việc với cin và cout. File văn bản chứa dữ liệu ở dạng mã ASCII, kết thúc bởi ký tự EOF.

Ví dụ 8.28: Tạo file văn bản có thể được sử dụng trong hệ thống có thể nhận được các tài khoản để giúp đỡ quản lý tiền nợ bởi các khách hàng tín dụng của công ty. Mỗi khách hàng, chương trình chứa một số tài khoản, tên và số dư (balance).

1: //Chương trình 8.28

2: #include<iostream.h>

3: #include<fstream.h>

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