【发布时间】:2017-07-04 09:03:48
【问题描述】:
我正在尝试了解如何检查我的数据文件中的错误或错误类型。 这些错误是我故意犯的。
我的文件是这样的
姓名 HouseNr City Country number(运动次数)Sport1 Sport2 SportN
Carl Lincoln42 休斯顿美国 2 篮球足球
while(fscanf(fData, "%s %s %s %s %d", (person + i)->name,
(person + i)->adr.houseNr, (person + i)->adr.city, (huvi + i)->adr.country,
&(sport + i)->sportCount) == 5)
{
for (j = 0; j < (person + i)->sportCount; j++)
{
fscanf(fData, "%s", (person + i)->sportName[j]);
}
i++;
}
现在我不明白的是,我应该如何检查该文件中的错误。
假设number的值高于SportN的值。
这意味着它将其他人的详细信息扫描为 SportName
我应该如何解决这个问题?更改一些代码(请提供一些建议)或更改我存储数据的方式?
【问题讨论】:
-
你的条件必须注意数字和换行,例如
-
错误我的意思是,如果我在 Number 中输入 5,但我只有 2 个 SportName。
-
文件中的数据是否基于行?然后一个好的开始是逐行读取,并分别解析每一行。
-
查看How to use
sscanf()in loops? 使用%n确定运动次数的结束位置,然后使用该问题中的技巧依次阅读运动。
标签: c file input error-handling io