Danh mục

Bài giảng Kỹ thuật lập trình nâng cao: Chương 6 - ThS. Phạm Đào Minh Vũ

Số trang: 15      Loại file: pdf      Dung lượng: 338.08 KB      Lượt xem: 15      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 6 - Lưu trữ dữ liệu trên tập tin. Chương này gồm có những nội dung: Giới thiệu về tập tin, thao tác với tập tin, lớp fstream - , các thao tác trên file. mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình nâng cao: Chương 6 - ThS. Phạm Đào Minh Vũ CHƯƠNG 6Lưu trữ dữ liệu trên tập tin1. Giới Thiệu Tập tin văn bản: tập tin dùng để ghi các ký tự lên đĩa theo các dòng. Tập tin nhị phân: tập tin dùng để ghi các cấu trúc dạng nhị phân (được mã hoá).22. Thao tác với tập tin Bước 1: Mở tập tin để đọc/ ghi. Bước 2: Các xử lý trên tập tin. Bước 3: Đóng tập tin.33. Lớp fstream - • fstream dataFile : khai báo tên đối tượng kiểu fstream• dataFile.open(“tên file, mode); • Tên file : chuỗi chứ tên file • Mode : Có 5 chế độ cơ bản sau: • ios::out :chế độ mở file để xuất ra (đọc file) • ios::in : chế độ mở file để Ghi • ios::app : Chế độ gắn thêm vào file (nếu file chưa được tạo thì nó sẽ tạo ra 1 file mới) • ios::binary : Chế độ nhị phân • ios::trunc : Nếu file đã được tạo thì nội dung của nó sẽ bị xóa đi.• Đóng file : dataFile.close()44. Các thao tác trên file• Mở file : • dataFile.open(“info.txt, ios::out);• Ghi file : •dataFile.open(“info.txt, ios::in);• Mở ghi và chèn vào cuối file : • dataFile.open(“info.txt, ios::app);• Mở để đọc và ghi : • dataFile.open(“info.txt, ios::in | ios::out); • Nếu file chưa tồn tại thì sẽ tự động tạo file mới54.1 mở file để ghi#include #include using namespace std;void main(){ fstream dataFile; cout 4.2 Ghi thêm vào file//ghi thêm vào file , nếu file đã tồn tại thì tiến hành append tiếp tụcvàovoid writeAppendFile(){ fstream dataFile; cout 4.3 Xuất file có định dạng#include // thư viện cho việc sử dụng hàm setprecisionvoid writeFormatFile(){ fstream dataFile; double num = 17.816392; dataFile.open(numfile.txt, ios::out); dataFile 4.4 Đọc nội dung filevoid main(){const int SIZE = 81; // Size của mãng inputchar input[SIZE]; // Mãng lưu inputfstream nameFile;nameFile.open(murphy.txt, ios::in); //Mở file ở chế độ đọcif (!nameFile) { cout > input) //Đọc nội dung file. cout 4.4 Đọc nội dung file (tt)  Khoảng trắng (Whitespace) là 1 kí tự mà nó là 1 phần của dữ liệu, vấn đề sẽ nảy sinh khi ta đoc vào bằng toán tử >>. Bởi vì toán tử >> nó xem khoảng trắng như 1 kí tự kết thúc (delimiter), vì thế nó sẽ không đọc chúng vào  Để khắc phục, ta sử dụng hàm getline. Hàm getline sẽ đọc toàn bộ nội dung của 1 dòng trong file và giữ nguyên định dạng104.4 Đọc nội dung file void main() { const int SIZE = 81; // Size của mãng input char input[SIZE]; // Mãng lưu input fstream nameFile; nameFile.open(murphy.txt, ios::in); //Mở file ở chế độ đọc nameFile.getline(input, SIZE); //Dùng kí tự mặc định như kí tự kết thúc. while (!nameFile.eof()) //Nếu chưa kết thúc file thì tiếp tục đọc { cout 4.5 Truyền file vào hàm  Chúng ta khi làm việc với những chương trình thực sự thì đôi khi chúng ta cần phải truyền 1 tên file vào hàm nào đó để tiện cho việc quản lý, nhưng khi truyền phải lưu ý là luôn luôn truyền bằng tham chiếu  Ví dụ : bool OpenFile(fstream &file, char *name)12Ví dụ: kiểm tra file có tồn tại ? //Hàm mở file, kiểm tra file có tồn tại chưa ? bool OpenFile(fstream &file, char *name) { file.open(name, ios::in); if(file.fail()) return false; else return true; }13Ví dụ: hiển thị nội dung toàn bộ file//truyền file vào hàm, hiển thị nội dung filevoid ShowContents(fstream &file){ char *line = new char[100];//kích thước 1 dòng tối đa là 81 while(file.getline(line,100)) { cout Hàm main()void main(){ fstream dataFile; if(!OpenFile(dataFile, demofile.txt)) { cout

Tài liệu được xem nhiều: