繁体   English   中英

问:关于使用fscanf()读取数据文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM