Please or Register to create posts and topics.

Lập trình C: Bài 14 – Nhập xuất file trong C/C++

Trong quá trình lập trình, chúng ta thường phải đọc và ghi dữ liệu ra file. Bài này sẽ hướng dẫn các bạn cách làm đơn giản với C và C++.

Lưu ý: Trong các ví dụ dưới đây, các file input và output đặt cùng thư mục với file mã nguồn.

Ví dụ: Cho file input.txt, dòng đầu tiên gồm 1 số n là số lượng bạn bè, n dòng tiếp theo mỗi dòng là tên của 1 bạn bè. Đọc và ghi ra file output.txt danh sách bạn bè kèm số thứ tự
input.txt output.txt
3
Nguyen Van Quan
Nguyen Thi Hong Anh
Nguyen Van Hung
1.Nguyen Van Quan
2.Nguyen Thi Hong Anh
3.Nguyen Van Hung

Code C

file name: test.c - code by: nguyenvanquan7826
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main()
{
    int n, i;
    char name[255];                         // khai bao bien ten
    FILE *fi = fopen("input.txt", "r");     // mo file de doc
    FILE *fo = fopen("output.txt", "w");    // mo file de ghi
    fscanf(fi, "%d", &n);                   // doc so n tu file fi
    fgets(name, 255, fi);                   // loai bo dau xuong dong sau khi doc so n
    for(i = 0; i < n; i++)
    {                  
        fgets(name, 255, fi);               // doc chuoi gom 255 ky tu tu file fi
        fprintf(fo, "%d.%s", (i+1), name);  // ghi chuoi ra file fo
    }
    fclose(fi);     // dong file fi
    fclose(fo);     // dong file fo
    return 0;
}

Code C++

file name: test.cpp - code by: nguyenvanquan7826
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <fstream>
using namespace std;
int main()
{
    int n;
    string name;
    ifstream fi("input.txt");   // mo file de doc
    ofstream fo("output.txt");  // mo file de ghi
    
    fi >> n;                  // doc 1 so tu file
    getline(fi, name);          // loai bo dau xuong dong sau khi doc so n
    for (int i = 0; i <n; i++)
    {
        getline(fi, name);      // doc 1 dong tu file
        fo << (i+1) << "." << name << '\n';     // ghi 1 dong ra file
    }
    fi.close();
    fo.close();
    return 0;
}