将文本文件中的int读入C中的数组

我有一个格式如下的文本文件:

100 0 10 1 101 6 10 1 102 8 4 1 103 12 20 1 104 19 15 1 105 30 5 1 106 35 10 1 

我需要将这些数字分别放入数组pID [],arrival [],bursts []和priority []中。 C不是我最强的语言,所以我在这方面遇到了一些麻烦。

这是我目前的代码:

 void readFile(int n, int pID[], int arrival[], int bursts[], int priority[]){ FILE *file; int i = 0; file = fopen("Process.txt", "r"); //File format is pID, arrival, bursts, and priority if (file){ while (!feof(file)){ pID[i] = fscanf(file, "%d ", &i); arrival[i] = fscanf(file, "%d ", &i); bursts[i] = fscanf(file, "%d ", &i); priority[i] = fscanf(file, "%d ", &i); } fclose(file); } 

谢谢你的帮助!

你正在以错误的方式使用feoffscanf 。 我建议你一次从文件中读取一行,检查它是否被读取,然后从缓冲区中扫描值,同时检查数组索引是否仍然正常,并扫描正确的字段数。

 void readFile(int n, int pID[], int arrival[], int bursts[], int priority[]) { FILE *file; int i = 0; char buffer[100]; file = fopen("Process.txt", "r"); if (file){ while (i < n && fgets(buffer, sizeof buffer, file) != NULL) { if(sscanf(buffer, "%d%d%d%d", &pID[i], &arrival[i], &bursts[i], &priority[i]) != 4) { exit(1); // or recovery strategy } i++; } fclose(file); } }