Menu Close

Làm việc với file bằng C++

Làm việc với file bằng C++

Ghi dữ liệu xuống 1 file:

#include <fstream>
using namespace std;
int main() {
    //tạo object của ofstream 
    //và xác định file sẽ được mở để ghi dữ liệu
    ofstream fileStream;
    fileStream.open("test.txt",ios::out);

    //ghi dữ liệu xuống file bằng toán tử <<
    for (int i = 0; i < 10; i++)
    {
        fileStream << "Line " << i << endl;
    }
    //đóng kết nối
    fileStream.close();
    return 0;
}

Tuy nhiên với các cách làm như trên thì mỗi lần chương trình chạy thì nội dung cũ của file sẽ bị xóa và được ghi đè bằng nội dung mới. Nếu muốn ghi tiếp tục nội dung vào cuối file tiếp tục nội dung đang có thì ta cần phải sử dụng thêm 1 flag như sau:

#include <fstream>
using namespace std;
int main() {
    //tạo object của ofstream 
    //và xác định file sẽ được mở để ghi dữ liệu
    ofstream fileStream;
    fileStream.open("test.txt",ios::out|ios::app);//bô sung thêm flag ios::app

    //ghi dữ liệu xuống file bằng toán tử <<
    for (int i = 0; i < 10; i++)
    {
        fileStream << "Line " << i << endl;
    }
    //đóng kết nối
    fileStream.close();
    return 0;
}

Có thể sử dụng fstream để xuất dữ liệu xuống file hoàn toàn giống với ofstream:

#include <fstream>
using namespace std;
int main() {
    //tạo object của ofstream 
    //và xác định file sẽ được mở để ghi dữ liệu
    fstream fileStream;
    fileStream.open("test.txt",ios::out|ios::app);//bô sung thêm flag ios::app

    //ghi dữ liệu xuống file bằng toán tử <<
    for (int i = 0; i < 10; i++)
    {
        fileStream << "Line " << i << endl;
    }
    //đóng kết nối
    fileStream.close();
    return 0;
}

Đọc dữ liệu từ file

Sử dụng ifstream:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
    ifstream file("test.txt",ios::in);
    if (file.is_open()) {
        string line;
        //đọc từng dòng trong file 
        //và xử lý (ở đây là hiển thị lên màn hình)
        while (getline(file,line )) {
            cout << line << endl;
        }
        file.close();
    }
    system("pause");
    return 0;
}

hoặc có thể sử dụng fstream một cách tương tự như sau:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
    fstream file("test.txt",ios::in);
    if (file.is_open()) {
        string line;
        //đọc từng dòng trong file 
        //và xử lý (ở đây là hiển thị lên màn hình)
        while (getline(file,line )) {
            cout << line << endl;
        }
        file.close();
    }
    system("pause");
    return 0;
}

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *