在C中读取txt文件并写入结构

Reading from a txt file and writing to a struct in C

本文关键字:结构 文件 txt 读取      更新时间:2023-10-16

我正试图从txt文件中读取数据,并将其插入到我拥有的结构中。我试过使用fscanf,它可以编译,但当我运行它时会崩溃。我对编码还很陌生,所以如果有任何帮助,我将不胜感激。

数据格式如下

A1 6 30 4

A2 9 11 6

A3 9 30 7

A4 90 11 3

这是我迄今为止拥有的

      typedef struct Process
    {
        char name[3];
        int arrivalTime;
        int serviceTime;
        int priority;
    } Process;
int main(){
    Process record[MAX];
    int i, counter;   
    FILE *ifp;
    ifp = fopen("data.txt","r");
    if (ifp == NULL) {
     fprintf(stderr, "Can't open input file in.list!n");
     exit(1);
     }
     while (EOF != fscanf(ifp, "%s %d %d %d", &record[i].name, &record[i].arrivalTime,
           &record[i].serviceTime, &record[i].priority)){
           i++;
           counter;
     }
     fclose(ifp);           
     int j;
     for (j = 0; j < counter; j++) {
         printf(record[j].name, &record[j].arrivalTime,
         &record[j].serviceTime, &record[j].priority);
     }       
}

使用初始化了一定大小的缓冲区并从中读取数据。

char buffer[256];
while (EOF != fscanf(ifp, "%[^n]n", buffer)){
           sscanf (buffer, "%s %d %d %d", record[i].name, &record[i].arrivalTime ,&record[i].serviceTime, &record[i].priority);
           i++;
           counter++;
 }

打印使用:

for (j = 0; j < counter; j++) {
         printf("%s %d %d %d n", record[j].name, record[j].arrivalTime, record[j].serviceTime, record[j].priority);
 }