các biến, các kết quả tính toán ra tập tin (file), nhờ vậy kết quả tính toán sẽ không bị mất và có thể đọc dữ liệu có trong file để xử lí tiếp. → giải pháp : thao tác với các tập tin ([r]
(1)T IN ĐẠI CƯƠNG
1
NHẬP - XUẤT FILE, STRUCT
Nguyễn Thị Phương Thảo
(2)Nội dung chính 1. Thao tác với tập tin
(3)Sự cần thiết sử dụng file C++
3
Câu lệnh cin : nhập liệu từ bàn phím và
đưa vào biến
Câu lệnh cout : hiển thị giá trị biểu thức ra màn hình
Khi kết thúc chương trình biến, biểu
thức khơng cịn nữa → dữ liệu bị mất
Mong muốn người sử dụng: lưu trữ
các biến, kết tính tốn tập tin (file), nhờ kết tính tốn khơng bị mất đọc liệu có file để xử lí tiếp
→ giải pháp : thao tác với tập tin (cụ thể
(4)1 Thao tác với tập tin
C++ cung cấp lớp (class) sau để đọc - ghi
dữ liệu với file
ofstream: ghidữ liệu vào file
ifstream:đọc liệu từ file
fstream: đọc ghi file
Các lớp định nghĩa thư viện
fstream và đặt không gian tên std
→ khai báo thư viện fstream đầu chương trình :
(5)Ghi file ofstream
◮ Tạo đối tượng gắn với file thiết bị lưu trữ ◮ Khi thaycout tên đối tượng, liệu ghi vào file
đại diện đối tượng đó, thay in hình
◮ Cách : tạo đối tượng chưa gắn với tập tin cụ thể nào,
sau dùng hàm open để mở tập tin gắn với đối tượng vừa tạo
Ví dụ :
(6)Ghi file ofstream
Cách : mở tập tin đồng thời gắn với tên đối
tượng
Ví dụ : ofstream ofs("thudo.txt") ;
Chú ý : sau thao tác xong, sử dụng hàm close() để đóng file giải phóng đối tượng
Kiểm tra việc mở tập tin
- Sử dụng hàm is_open() : trả giá trị true việc mở file thành công
(7)Đọc file ifstream
tương tự ghi file, có cách
ifstream ifs ;
ifs.open("thudo.txt") ; Và
ifstream ifs("thudo.txt") ;
Ví dụ :
(8)Đọc ghi file fstream
Mở file để ghi dùng fstream
Ghi file : sử dụng fstream tương tự ofstream, lưu ý mở file để ghi thêm fstream : :outofstr
ofstream ofs;
ofs.open(“thudo.txt”); ofs << ”Madrid" << endl; ofs << "Paris" << endl; ofs.close();
fstreamofs;
ofs.open(“thudo.txt”,fstream::out); ofs << ”Madrid" << endl;
ofs << "Paris" << endl; ofs.close();
(9)Đọc ghi file fstream
Mở file để đọc
Đọc file: sử dụng fstream tương tự ifstream, lưu ý mở file để đọc thêm fstream::inifstream fstream
9 ifstreamifs; ifs.open(“hello.txt”); string dong; while (!ifs.eof()) { getline(ifs, dong); cout << dong << endl; }
ifs.close();
fstreamifs;
ifs.open(“hello.txt”,fstream::in); string dong;
while (!ifs.eof()) {
getline(ifs, dong); cout << dong << endl; }
(10)