我需要从文件中读取大量数据,它看起来像:
0 1.8750 274.90 0 0 0
1 3.7500 370.50 0 1 0
2 7.5000 463.50 0 2 0
所以我使用:
fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);
当我尝试查看它是否正确读取时,我使用了:
printf("A %d",a);
printf("B %f",b);
输出:
A 0B -1.882607
那么,为什么 fscanf 不能正确读取 float ??
最佳答案
问题的可能根源是不匹配fscanf()
指令
或者
不完整 fscanf()
读取。可能是由于未打开的文件或意外的输入文本。
A 0B -1.882607
| || +--------- b value -1.882607
| |+----------- Letters B space
| +------------ a value 0
+-------------- Letters A space
确保您的变量是以下类型:
int a,d,t,q;
float b,c;
检查 fscanf() 的结果
int result = fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);
if (result != 6) {
printf("Error, unexpected return value:%d\n", result);
}
OP 提供的其他信息会有所帮助。
关于c - 使用 fscanf 从文件中读取数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18051413/