簡體   English   中英

從txt文件讀取並在C中寫入結構

[英]Reading from a txt file and writing to a struct in C

我正在嘗試從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);
 }   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM