从C中的文件读入数字

Mxy*_*xyk 1 c file-io

我有一个名为的文件points.dat:
5
2 5
-1 18
0 6
1 -1
10 0

第一个数字是有多少个有序对.接下来的5行包含那些有序对.我可以做什么来读取第一个数字,确定有多少点(从这里我可以存储点malloc的数组structs).

我的问题是,fgetc这里没有真正的工作.如果第一个数字是两位数怎么办?假设第一个数字是10. fgetc只会检索'1'.此外,fgets实际上并不起作用,因为您需要提供您想要读取的字符数量的长度.同样适用fscanf.

当需要检索有序对时,会遇到真正的麻烦.我也不知道怎么做.到目前为止,我唯一的想法是看一条线:如果它看到非空格或非'\n',它将读取数字作为点1的x坐标.循环.获得y坐标.一旦它命中'\n',它现在将移动到下一行,并开始寻找值存储在struct数组中的下一行structs.

(在执行此操作时,我还需要确保atoi可以将所有这些转换为整数...).

如果有人有任何想法可以提供帮助,我们将不胜感激.

xan*_*tos 5

对于第一线使用 int numValuesRead = fscanf(file, "%d", &totnums);

然后,numValuesRead = fscanf(file, "%d %d", &num1, &num2);用来读取其他行.

fscanf返回读取的值的数量.你应该经常检查它.