gpt4 book ai didi

c - C 中的 fscanf 段错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:38 24 4
gpt4 key购买 nike

我正在尝试从文件中读取值并将它们存储在结构中。

结构包含

char region
char country[100]
int country_code

这个结构的实例叫做c[100]

我正在尝试读取的文件看起来像这样

Europe
0 France
1 England
2 Germany

国家数量不详,一直读到EOF。

我已经创建了一个结构数组。

我目前的代码如下所示:

fp= fopen(countries,"r");

while (!feof(fp))
{
fscanf(fp, "%[^\n]", c.region);
while (!feof(fp))
{
fscanf(fp, "%d, %[^\n]", c[i].country_code, c[i].country);
i++;
}
}

我遇到了段错误。我确定这是我错过或做错的明显事情,但我不确定是什么,如果有人能提供帮助,我将不胜感激。

最佳答案

fscanf(myfile, "%d, %[^\n]", c[i].country_code, c[i].country);

应该固定为

fscanf(myfile, "%d, %[^\n]", &(c[i].country_code), c[i].country);

因为 fscanf 需要一个地址来写入数据。您不需要对 char 数组使用 &,因为它已经是一个指针。

此外,在您的结构中 char region; 应该更改为 char region[100]; 因为您没有该区域的一个字符,而是多个字符, IOW 一个字符串。

关于c - C 中的 fscanf 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450697/

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