[英]Q: About reading data files using fscanf()
我在DOS模拟器(Dosbox)中使用TurboC。 在以下几行中,我尝试读取整数和浮点数据,但仅获取第一个(int)字段。 关于使用fscanf()读取文件的主题,尤其是使用空格分隔的数据,已经找到了很多问答,但是相关信息却很少或缺少(主要来自问题)。 这是演示问题的代码:
#include <stdio.h>
int index;
float rtime, volts;
char infilename[10];
int *pti;
float *ptx;
float *pty;
FILE *infp;
void main(void)
{
infp = fopen("data1", "r");
pti = &index;
ptx = &rtime;
pty = &volts;
fscanf(infp, "%d %6.3f %6.3f", &index, &rtime, &volts);
printf("%3d %6.3f %6.3f\n", index, rtime, volts);
}
这是数据文件的第一行:
37 261.100 0.996
printf提供以下输出:
37 0.000 0.000
有明显的钉子吗? 谢谢
格式%6.3f
对于scanf()
不正确。 您可能需要%f
或%7f
。 您不能以scanf()
格式指定小数位数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.