gpt4 book ai didi

c - 如何检查 C 中的 fscanf 错误

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

我有一张这样的 table ;

01 01 02 00 01 02 00 01
01 02 00 01 02 00 01 02
02 00 11 04 04 04 04 04
00 01 10 03 03 03 03 03

我正在这样阅读这个文件:

FILE *map = open_file("lazy.map");
if (map == 0)
return 0;

for (i = 0; i < TOTAL_TILES; ++i) {
int ttype;
fscanf(map,"%i",&ttype);
// do other stuff here...
}

有没有办法检查 fscanf 是否失败?

最佳答案

检查返回值。

另一种选择是使用%n 格式:

int n = -1;
int ttype;
fscanf(map, "%i%n", &ttype, &n);
if(-1 == n)
// failed to parse

通过这种方式,您可以检查 fscanf 消耗了多少符号。它在上面没有区别,但在:

int count = fscanf(map, "%i abc %n", &ttype, &n);

count 可能大于 1,即使 abc 部分格式不匹配。另一方面,n 只有在整个格式匹配时才会被设置。

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

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