Bài giảng Kỹ thuật lập trình - Chương 6: Tập tin - Trần Minh Thái

Đọc ghi trên tập tin binary Đọc dữ liệu từ tập tin lưu vào biến: tên_đối_tượng.read(địa chỉ biến, kt biến); *Ghi dữ liệu vào tập tin: tên_đối_tượng.write(địa chỉ biến, kt biến); ØĐịa chỉ biến có dấu & trước tên biến (địa chỉ của 1 ký tự) ØKích thước biến: dùng hàm sizeof(biến)

pdf18 trang | Chia sẻ: thanhle95 | Lượt xem: 377 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Kỹ thuật lập trình - Chương 6: Tập tin - Trần Minh Thái, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRẦN MINH THÁI [W]www.minhthai.edu.vn [M]minhthai@itc.edu.vn **Cung cấp các kiến thức cơ bản về lập trình lưu trữ trên tập tin (FILE) *Cung cấp hàm thư viện phổ biến để thao tác trên tập tin **Tâp̣ tin văn ban̉ (text): tâp̣ tin duǹg đê g̉hi cać kýtư ḷên điã theo cać doǹg è Dữ liệu lưu được chuyển về dạng text *Tâp̣ tin nhi p̣hân (binary): tâp̣ tin duǹg để ghi cać dữ liệu dưới daṇg mã nhi p̣hân **Bước 1: Mở tâp̣ tin để đọc/ ghi. *Bước 2: Cać xử lýtrên tâp̣ tin. *Bước 3: Đońg tâp̣ tin. **ifstream: Dùng đọc file. *ofstream: Dùng tạo file. *fstream: Vừa có thể tạo file và đọc dữ liệu trong file. **Khai báo đối tượng file fstream tên_đối_tượng; *Mở file tên_đối_tượng.open(“tên file”, chế độ mở); *Đóng file tên_đối_tượng.close(); * Chế độ mở Ý nghĩa ios::out Ghi nội dung vào file ios::in Đọc nội dung file ios::app Thêm nội dung vào cuối file nếu file đã có nội dung ios::binary Tạo file nhị phân (nếu không có thì mặc định mở file theo chế độ text) Kết hợp các chế độ mở file: dùng phép kết hợp or: | Kết hợp ios::in | ios::out để mở file vừa đọc và ghi **Đọc dữ liệu từng dòng lưu vào biến chuỗi: tên_đối_tượng>>biến; hoặc tên_đối_tượng.getline(biến, độ dài tối đa); *Ghi dữ liệu vào file: tên_đối_tượng<<biến; * bool TaoFile(char *s) { fstream file; file.open(s, ios::out); if(file.fail()) return false; file<<"Thu tu ngay 11 thang 04 nam 2012"<<endl; file<<170<<endl; file<<15.9; file.close(); return true; } **Nội dung tập tin sau khi tạo: Thu tu ngay 11 thang 04 nam 2012 170 15.9 * bool DocFile(char *s) { char data[100]; fstream file; file.open(s, ios::in); if(file.fail()) return false; while(file>>data) { cout<<data<<endl; } file.close(); return true; } Kết quả đọc file được tạo từ hàm TaoFile: Thu tu ngay 11 thang 04 nam 2012 170 15.9 * bool DocFile2(char *s) { char data[100]; fstream file; file.open(s, ios::in); if(file.fail()) return false; while(!file.eof()) { file.getline(data, 100); cout<<data<<endl; } file.close(); return true; } Kết quả đọc file được tạo từ hàm TaoFile: Thu tu ngay 11 thang 04 nam 2012 170 15.9 **Viết chương trình nhập vào một bài thơ có 5 dòng và lưu bài thơ đó vào file: “tho1.txt” *Viết chương trình nhập vào một bài thơ bất kỳ và lưu bài thơ đó vào file: “tho2.txt” *Viết chương trình tìm câu thơ nào dài nhất trong tập tin “tho2.txt” vừa tạo **Đọc dữ liệu từ tập tin lưu vào biến: tên_đối_tượng.read(địa chỉ biến, kt biến); *Ghi dữ liệu vào tập tin: tên_đối_tượng.write(địa chỉ biến, kt biến); ØĐịa chỉ biến có dấu & trước tên biến (địa chỉ của 1 ký tự) ØKích thước biến: dùng hàm sizeof(biến) * bool TaoFile(char *s) { char data[50]="Nguyen Van An"; int x=250; fstream file; file.open(s, ios::out|ios::binary); if(file.fail()) return false; file.write(data, sizeof(data)); file.write((char*)&x, sizeof(x)); file.close(); return true; } * bool DocFile(char *s) { char data[50]; int x; fstream file; file.open(s, ios::in|ios::binary); if(file.fail()) return false; file.read(data, sizeof(data)); cout<<data<<endl; file.read((char*)&x, sizeof(x)); cout<<x; file.close(); return true; } *Viết chương trình nhập vào mảng số nguyên, kích thước n và lưu mảng này vào file “mang1c.dat” theo cấu trúc -Dòng 1 lưu số lượng phần tử -Dòng 2 lưu giá trị các phần tử trong mảng *Cho dữ liệu là file “mang1c.dat” đã tạo trước, hãy viết chương trình: *Tìm phần tử có giá trị lớn nhất *Đếm số lượng phần tử có giá trị là số nguyên tố *Thêm vào file phần tử có giá trị x vào sau phần tử có giá trị lớn nhất
Tài liệu liên quan