我正在尝试从 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);
}
关于c++ - 从 txt 文件中读取并写入 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33535529/