Mình xin góp 1 cách. Có 1 file sinhvien.txt nội dung thế này:
Code:
0123456787 Nguyen Thanh Anh 1988-01-31 15854
0123456788 Nguyen Thuy Anh 1990-09-02 7925
0123456789 Tran Van An 1989-12-22 12588
Chương trình sau đọc nó vào cấu trúc sinhvien trong bộ nhớ rồi lại ghi cấu trúc này ra một file khác giống hệt như thế.
Code:
#include<stdio.h>
struct date
{
short year;
char month;
char day;
};
struct sinhvien
{
char maso[11];
char hoten[21];
date ngaysinh;
int diemtongket;
};
int main()
{
FILE *fileIn = fopen("sinhvien.txt","rt");
FILE *fileOut= fopen("sinhvien-out.txt","w+t");
sinhvien sv;
const char *formatIn = "%10s %20c %d-%d-%d %d\n";
const char *formatOut = "%10s %20s %4.4d-%2.2d-%2.2d %5d\n";
while(!feof(fileIn))
{
fscanf(fileIn, formatIn,
&sv.maso, &sv.hoten, &sv.ngaysinh.year, &sv.ngaysinh.month, &sv.ngaysinh.day, &sv.diemtongket);
sv.hoten[20]=0;
fprintf(fileOut, formatOut,
sv.maso, sv.hoten, sv.ngaysinh.year, sv.ngaysinh.month, sv.ngaysinh.day, sv.diemtongket);
}
fclose(fileIn);
fclose(fileOut);
return 0;
}