6.2.2|
6.2.2.1| Câu lệnh open()
Đe mở file ta sử dụng ca u le ̣nh open có cú pháp như sau:
fileObject.open (fileName[, mode] );
Trong đó:
fileObject là đói tượng dùng đe đọc hoa ̣c ghi đa khai báo trong ca u
le ̣nh ifstream hoạc ofstream.
fileName là te n ta ̣p tin muón mở. fileName có the là mo ̣t te n ta ̣p tin
hoa ̣c bao gòm cả tre n và đường da n đén ta ̣p tin mà người dùng muón mở. Trong trường hợp ta ̣p tin kho ng tòn tại th ̀ chương tr ̀nh se tạo ra mo ̣t ta ̣p tin mới với te n file đa được khai báo. Néu người dùng kho ng ch ̉ ra đường da n đén file, th ̀ file se được tạo trong thư mục hie ̣n hành của chương tr ̀nh.
Mode là tho ng só trong ca u le ̣nh ch ̉ ra cách mở file. Có các cách mở file như sau:
Mode ô tả
ios::in Sử dụng mo ̣t đói tượng ifstream. Mở file cho phép máy t ́nh đọc no ̣i dung file – input file. Đa y là mode ma ̣c định cho input files.
ios::out Sử dụng mo ̣t đói tượng ofstream. Mở file mới, ro ng cho phép máy t ́nh ghi no ̣i dung file – output file. Néu file có sa n, máy t ́nh se xóa no ̣i dung file trước khi ghi vào dư lie ̣u mới. Đa y là mode ma ̣c định cho output files.
Tài liệu giảng dạy Trang 56
ios::app Sử dụng mo ̣t đói tượng ofstream. Mở file đe ghi tiép, dư lie ̣u mới se được tại vị tr ́ con trỏ cuói file có sa n. File phải có sa n tre n máy t ́nh trước khi ghi.
Ví dụ 1: Hai câu le ̣nh sau
fInFile.open(“danhsach.txt”, ios::in); hoa ̣c
fInFile.open(“DanhSach.txt”);
mở file có te n “DanhSach.txt” đe đọc.
Ví dụ : Hai ca u le ̣nh sau
fOutFile.open(“PhanCong.txt”, ios::out); hoa ̣c
fOutFile.open(“PhanCong.txt”); mở file có te n “PhanCong.txt” đe ghi.
Ví dụ : Ca u le ̣nh sau
fOutSales.open (“F: / PersData / sales.txt” , ios::app);
mở file sales.txt được lưu trong o đ a F, thư mục PersData đe ghi tiép vào cuói file.
6.2.2.2| Câu lệnh is_open()
Sau khi dùng ca u le ̣nh open, ta ̣p tin được mở sa n sàng đe người dùng thực hie ̣n thao tác đọc hoa ̣c ghi. Tuy nhie n, néu v ̀ mo ̣t lý do nào đó như đường da n kho ng đúng, file kho ng tòn tại, chương tr ̀nh khác dùng ... vie ̣c mở file kho ng thành co ng th ̀ các ca u le ̣nh thực hie ̣n đọc, ghi se kho ng the thực hie ̣n ga y lo i chương tr ̀nh. Do đó, ta ne n sử dụng ca u le ̣nh is_open() ngay sau câu le ̣nh open() đe kie m tra máy t ́nh thực hie ̣n mở file có thành co ng hay khơng. Cú pháp: fileObject.is_open() Ví dụ 1: fInFile.open(“DanhSach.txt”); if (fInFile.is_open() == true) {
cout << “ Mo file thanh cong”; // hoa ̣c khói le ̣nh đọc / ghi file }else
{
Tài liệu giảng dạy Trang 57
}