<< 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:
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.
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.
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>
Notification Switch
Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?