c++ - 从 txt 文件中读取并写入 C 中的结构

标签 c++ 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);
 }   

关于c++ - 从 txt 文件中读取并写入 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33535529/

相关文章:

c++ - 正确编写我的 C++ Makefile 的问题

c++ - 我们如何使用VNC进行视频录制

java - Winsock 仅在程序关闭时发送数据

c - 我想从包含段落、拆分单词的文件中读取文本,然后分配给数组

c - 以下 C 代码中的 "item=infix_exp[i++]; "是什么意思?

c++ - C++ 链接器如何知道要使用哪些 .cpp 文件

c++ - 有哪些 C++ 标准库使用最佳实践?

c - 关于解决并行化问题的一般问题

c - 有没有办法转储所有 native 内存?

c - 赋值从指针生成整数而不进行强制转换 [-Wint-conversion]