gpt4 book ai didi

c - fscanf 函数在预期为 9 时返回 -1

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:59 25 4
gpt4 key购买 nike

第一行如下

Fre     18/07 18.30     FCN - FCV       3 - 2      3.349  

扫描函数为:

struct match_data match[300];
while(!feof(file_pointer))
{
if(fscanf(file_pointer, "%[^ ] %d/%d %[^ ] %[^ ] - %[^ ] %d - %d %lf \n",
match[i].match_day, &(match[i].match_date_day), &(match[i].match_date_month),
match[i].match_time, match[i].match_home_team, match[i].match_away_team,
&(match[i].match_home_goals), &(match[i].match_away_goals), &(match[i].match_spectators)) != 9);
{
printf("Error Reading file");
return -1;
}

我希望看到将以下内容放入结构中

match_day: FRI

match_date_day: 18

match_date_month: 07

match_time: 18.30

match_home_team: FCN

match_away_team: FCV

match_home_goals: 3

match_away_goals: 2

match_spectators: 3.349

但是,正如标题所说,函数不返回9,测试时返回-1

编辑

添加了结构

struct match_data
{
char match_day[4];
int match_date_day;
int match_date_month;
char match_time[6];
char match_home_team[4];
char match_away_team[4];
int match_home_goals;
int match_away_goals;
double match_spectators;
};

并添加到我声明结构数组的扫描

最佳答案

您在 if 条件之后直接放置了一个分号,使代码在出错时运行成为一个空语句。

无论有无错误,后面的复合语句都会执行。

为避免此错误和其他“愚蠢”错误,您应该尽可能多地启用编译器警告。例如,在 gcc 上,这意味着向编译器添加 -Wall -Wextra 参数(您可以查看文档以了解其他要启用的警告)。

关于c - fscanf 函数在预期为 9 时返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937481/

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