Em chào mọi người ạ. Em mới học phần file trong C và gặp đôi chút vấn đề về 1 bài tập về file như sau ạ.
Đề bài yêu cầu đọc file về cấu trúc bệnh nhân gồm họ và tên, bệnh ( có 3 loại bệnh A,B,C), tuổi lưu trên tệp file văn bản (danhsach.txt) với dòng đầu là số bênh nhân tiếp theo là mỗi dòng gồm thông tin bệnh nhân (3 thông tin trên) cách nhau bằng khoảng trống. Sau đó tạo file bn.txt để sắp xếp bệnh nhân theo thứ tự tên và tính tuổi trung bình người mắc bệnh C
VD file danhsach.txt như sau:
Vấn đề là em gặp là khi em cố gắng đọc file theo code như sau:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
typedef struct {
char HT[30], benh ;
int tuoi ;
} bn;
void nhap(bn **a, int *n, FILE *fi)
{
int i ;
fscanf(fi,"%d\n", n) ;
*a = (bn*)calloc((*n+5), sizeof(bn)) ;
for(i=0; i<*n; i++)
{
fscanf(fi,"%[^\n] %d %c\n", &(*a)[i].HT,&(*a)[i].tuoi,&(*a)[i].benh) ;
}
}
thì sẽ bị hiểu cả cụm Nguyen Van An A 77 là tên luôn, nên file bn.txt tạo ra bị sai. Mn cho em hỏi hướng để fix lỗi trên, đọc 3 thông tin trên cùng dòng đc k ạ ? Em cảm ơn ạ