Em nhập vào chuỗi arr.hoDem, có nhập space sau đó ghi file. rồi tắt chương trình mở lại, em cho đọc file luôn và in ra màn hình thì bị lỗi, hoDem thì chỉ có mỗi họ còn tên đệm thì chuyển sang arr.ten ạ. Em ko biết khắc phục như nào, mong anh chị giúp
int docFile( struct SV arr[], char fileName[]) {
FILE * f;
int i = 0;
f = fopen (fileName, "r");
while ((fscanf(f, "%10d %10s %20s %15s %10s %10f %10s\n", &arr[i].id, &arr[i].hoDem, &arr[i].ten,
&arr[i].gioiTinh, &arr[i].tuoi, &arr[i].diem, &arr[i].xepLoai))!= EOF) {
i++;
printf("\n Doc ban ghi thu: %d",i);
}
printf("\n So luong sinh vien co san trong file la: %d", i);
fclose (f);
return i;
}
void ghiFile(struct SV arr[], int n, char fileName[]) {
FILE * f;
f = fopen (fileName,"w");
for(int i = 0;i < n;i++){
fprintf(f, "%10d %10s %20s %15s %10s %10.2f %10\n", arr[i].id, &arr[i].hoDem, arr[i].ten,
arr[i].gioiTinh, arr[i].tuoi, arr[i].diem, arr[i].xepLoai);
}
fclose (f);
}
Trước khi ghi vào file thì em có in ra màn hình như này
STT ID Ho Dem Ten Gioi Tinh Tuoi Diem Xep Loai
1 2 Nguyen Hoang Tuan Nam 23 9.00 A
Sau khi lưu vào file, em tắt chương trình và chạy lại rồi cho in ra màn hình:
STT ID Ho Dem Ten Gioi Tinh Tuoi Diem Xep Loai
1 2 Nguyen Hoang Tuan Nam 23.00 9.00