thiet ke website

Cách đọc và ghi file text trong C++

Trong C++ việc đọc và ghi file thường được sử dụng để đưa các bài toán ở dạng đầu vào và xuất ra kết qủa, giúp cho người ta dễ dàng kiểm tra xem chương trình của bạn có thực sự đúng không khi cho chương trình chạy với nhiều đầu vào và kiểm tra các kết quả ở đầu ra chương trình có đúng với kết quả chuẩn. Bài viết này sẽ trình bày các vấn đề về đọc và ghi file với các ký tự ASCII sử dụng thư viện ifstream.

cách đọc và ghi tệp trong c++

1. Dùng hàm ofstream trong thư viện fstream để ghi file

– Cách ghi ra file sử dụng thư viện fstream cũng tương đối đơn giản, gần giống với cout trong c++.
– Dưới đây là đoạn code ví dụ: tạo ra một file demo.txt rồi ghi vào đó một đoạn văn bản mà mình muốn.

#include <iostream>
#include <fstream> 

using namespace std;

int main()
{
    ofstream FileDemo ("demo.txt");
    FileDemo << "Day la file demo su dung cach doc va ghi file su dung fstream. zFull.net";
    FileDemo.close();
    return 0;
}

Khi chạy đoạn code trên, chương trình sẽ tạo ra một file tên demo.txt nằm trong cùng thư mục với project chứa code của bạn. Khi mở file này lên sẽ thấy đoạn text mà mình đã ghi.

– Và sau đây đây là ví dụ về ghi ra các số chẵn từ 1 đến 1000 vào file sochan.txt.

#include <iostream>
#include <fstream> 

using namespace std;

int main()
{
    ofstream SoChan ("sochan.txt");
    SoChan << "Day so chan tu 1 -> 1000 \n";
    for(int a = 1; a <= 1000; a++)
    {
        if(a%2==0)
        {
            SoChan << a;
            SoChan << "\n";
        }
    }
    SoChan.close();
    return 0;
}

File sochan.txt sau khi chạy chương trình trên sẽ như hình dưới. 😀

đọc và ghi file c++

– Và tiếp tục một ví dụ ghi ra file “sochanle.txt” các số chẵn và lẽ từ 0 -> 100

#include <iostream>
#include <fstream>

using namespace std;

void ghiSoChan(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo << "Day so chan tu 1 -> 100 \n";
    for(int a=1;a<=100;a++)
    {
        if(a%2==0)
        {
            dem++;
            GhiSo << a;
            if(dem%5==0)
            {
                   GhiSo << "\n";
            }
            if(dem%5!=0)
            {
                   GhiSo << "\t";
            }
        }
    }
    cout << "\n So Chan: " << dem;
}

void ghiSoLe(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo << "\nDay so le tu 1 -> 100 \n";
    for(int i = 1; i <= 100; i++)
    {
        if(i%2 != 0)
        {
            dem ++;
            GhiSo << i;
            if(dem%5==0)
            {
                   GhiSo << "\n";
            }
            if(dem%5!=0)
            {
                   GhiSo << "\t";
            }
        }
    }
    cout << "\n So Le: " << dem;
}

int main()
{

    ofstream GhiSo("sochanle.txt");
    ghiSoChan(GhiSo);
    ghiSoLe(GhiSo);
    GhiSo<<"\n zFull.net";
    GhiSo.close();
    system("pause");
    return 0;
}

Kết quả file “sochanle.txt” thu được là:

ghi file c++

– Như vậy cách ghi ra một file sử dụng thư viện fstream trong C++ là khá dễ dàng đúng không 😀

2. Dùng ifstream trong C++ để dữ liệu đọc file

– Ở trên ta ghi ra một file sochan.txt rồi, giờ ta thử đọc file đó xem sao:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int a[501];
    ifstream SoChan ("sochan.txt");
    if(! SoChan.is_open())
    {
        cout << "Khong the mo file.\n";
        return 0;
    }
    else {
        for(int i = 1; i <= 500; i++)
        {
            SoChan >> a[i];
        }
    }
    for(int i =1; i <= 500; i++)
    {
        cout << a[i] << " ";
    }
    SoChan.close();
    system("pause");
    return 0;
}

Và kết quả sẽ được như sau:

cách đọc và ghi file c++

– Và tiếp một ví dụ khác để các bạn hiểu hơn về cách đọc file. Ví dụ này trình bày cách đọc một ma trận như hình bên dưới từ file txt.

đọc và ghi file c++

Và code chương trình như sau:

#include <iostream>
#include <fstream> 

using namespace std;

int main()
{
    int a[10][10];
    int n;
    ifstream MaTran ("graph.txt");
    if(! MaTran.is_open())
    {
        cout << "Khong the mo file.\n";
        return 0;
    }
    else {
        MaTran >> n;
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < n; j++)
            {
                MaTran >> a[i][j];
            }
        }
    }

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << a[i][j];
            cout << " ";
        }
        cout << "\n";
    }
    MaTran.close();
    system("pause");
    return 0;
}

Các bạn có thể tìm hiểu thêm về thư viện fstream tại đây.

3. Một vài lưu ý

– Code đều được test trên chương trình Dev C++.
– Trong một số bài tập về tin học người ta thường yêu cầu ghi ra file “.output” và đọc file “.input”, nếu gặp trường hợp đó, bạn làm tương tự như đối với file .txt. Tức là thay đổi tên file ghi ra là “.output” và file đọc vào là “.input”.
– Mọi thắc mắc xin để lại bình luận bên dưới bài viết này. Mình sẽ trả lời trong thời gian sớm nhất.
– Nếu học hành căng thẳng quá, các bạn có thể tải game bắn gà 5 về chơi, chỉ cần gõ bắn gà 5 vào khung tìm kiếm là bạn sẽ tìm thấy ^^!

Thiet ke logo

Bài viết liên quan

Ảnh đen trắng có gì hấp dẫn nhiếp ảnh gia?

Ảnh đen trắng có gì hấp dẫn nhiếp ảnh gia?

Nhiếp ảnh trên thế giới ngày càng đi lên và phát triển mạnh. Khi nhiếp ảnh mới bắt đầu, mọi ảnh được ghi lại đều chỉ có hai mảng màu Đen Trắng. Cho đến lúc có ảnh màu, vẫn rất nhiều người chọn kiểu ảnh…

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

Video này sẽ hướng dẫn các bạn cách cài đặt NetBeans, Eclipse… sau đó giới thiệu những chức năng cơ bản của 2 ứng dụng này! Chúc các bạn học tập vui vẻ!

[Java cơ bản] Bài 11: Các biểu thức toán tử trong Java

[Java cơ bản] Bài 11: Các biểu thức toán tử trong Java

Video này sẽ giới thiệu cho các bạn một vài biểu thức toán cơ bản trong Java. Trong Java ta có các biểu thức toán học + , – , * , /, % và được sử dụng như sau: Lưu ý: / và % hoàn…

Proteus 8.0 – Phần mềm giả lập mô phỏng và lập trình vi điều khiển

Proteus 8.0 – Phần mềm giả lập mô phỏng và lập trình vi điều khiển

Đã là dân CNTT, điện tử, chắc hiếm bạn nào không biết đến chương trình mô phỏng mạch điện tử nổi tiếng Proteus 8. Đây là chương trình thiết kế mạch nguyên lý, mô phỏng chạy thử, thiết kế mạch in rất trực quan và…

Bình luận ()