Để đọc ghi đồng thời trên tệp, chúng ta sử dụng lớp fstream. Lớp fstream thừa kế các phơng thức của các lớp ofstream và ifstream. Ngoài ra lớp fstream có các hàm tạo và phơng thức sau:
1. Hàm tạo:
fstream() ; // Không đối
dùng để tạo một đối tợng fstream (dòng nhập-xuất), cha gắn với tệp. 2. Hàm tạo:
fstream(const char *fn, int mode, int prot = filebuf::openprot);
dùng để tạo một đối tợng fstream, mở tệp có tên fn và gắn đối tợng vừa tạo với tệp đợc mở.
+ Tham số fn cho biết tên tệp.
+ Tham số mode quy định các kiểu truy nhập và có thể là tổ hợp của các giá trị sau:
ios::binary đọc-ghi theo kiểu nhị phân (mặc định theo kiểu văn bản).
ios::out ghi tệp, nếu tệp đã có thì nó bị xoá ios::in đọc tệp
ios::app ghi bổ sung vào cuối tệp
ios::ate chuyển con trỏ tệp về cuối sau khi mở ios::trunc xoá nội dung của tệp nếu nó tồn tạI
ios::nocreate nếu tệp cha có thì không làm gì (bỏ qua)
ios::noreplace nếu tệp đã có thì không làm gì (bỏ qua)
Chú ý:
+ Tham số mode không có giá trị mặc định.
+ Tham số thứ ba prot quy định cấp bảo vệ của dòng tin, tham số này có thể bỏ qua vì nó đã đợc gán một giá trị mặc định.
3. Hàm tạo:
fstream(int fd);
dùng để tạo một đối tợng fstream và gắn nó với một tệp có chỉ số fd đang mở.
(Để mở và lấy chỉ số (số hiệu) tệp có thể dùng hàm _open, xem cuốn Kỹ thuật Lập trình C của tác giả)
4. Hàm tạo:
fstream(int fd, char *buf, int n);
dùng để tạo một đối tợng fstream , gắn nó với một tệp có chỉ số fd đang mở và sử dùng một vùng nhớ n byte do buf trỏ tới làm bộ đệm.
5. Phơng thức:
void open(const char *fn, int mode, int prot = filebuf::openprot);
dùng để mở tệp có tên fn và gắn nó với đối tợng fstream. Các tham số của phơng thức có cùng ý nghĩa nh trong hàm tạo thứ 2.
Chú ý: Tham số mode không có giá trị mặc định.