gpt4 book ai didi

c - 将 csv 文件读取到结构时出错

转载 作者:行者123 更新时间:2023-11-30 15:13:37 25 4
gpt4 key购买 nike

我在从 csv 文件读取数据并将其解析为结构时遇到了麻烦。我认为最好展示一些代码。

这是我的结构:

typedef struct MyStruct{
char text[150];
char attr[4][50];
char check;
short int num;
} t_mystruct;

我的文件中的示例行可能如下所示:This is a long text;brown;green;yellow;silent;X;13;

现在我想读取该文件并将该数据添加到数组中:

list = malloc(sizeof(t_mystruct) * LIST_SIZE); /* Allocating Memory */

for (i = 0; i < LIST_SIZE; i++) /* Adding data to list */
{
t_mystruct element;

if (fscanf(fp, "%149[^;];%49[^;];%49[^;];%49[^;];%49[^;];%49[^;];%[^;];%d;", &element.text, &element.attr[0], &element.attr[1], &element.attr[2], &element.attr[3], &element.check, &element.num) != 7)
break; /* Break ==> Incomplete line/data */

list[i] = element; /* Add to list */
}

这可行,但我面临两个问题:

  1. “num”值与我的文件中的值不同。我得到的结果从 49 到大约 13000,但它们与我的实际输入值(在我的示例中为 13)不匹配。
  2. 该代码属于“readFile”函数。在该函数结束时,我遇到“变量“元素”周围的堆栈已损坏”错误。 编辑:调试时,我可以继续并且程序按预期工作。

但我看不到自己的错误。

最佳答案

您已指定五个个格式说明符

%49[^;];

但是您的结构只有四个,并且您只提供四个参数来匹配。您还将最后一个值读取为 int(当它为 short 时)。

关于c - 将 csv 文件读取到结构时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com