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

时间:2017-01-13 19:51:33

标签: c

在DOS模拟器(Dosbox)中使用Turbo C.在以下几行中,我试图读取整数和浮点数据,但只获取第一个(int)字段。找到了很多Q&关于使用fscanf()读取文件的主题,特别是使用空格分隔的数据,但相关信息很少或缺失(主要来自问题)。以下是演示此问题的代码:

 str_replace ( ['&','.','+'], '' , $subject , $count  )

 if ($count > $number ) {

以下是数据文件的第一行:

#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);
}

printf提供以下输出:

37   261.100   0.996

任何明显的蠢事? THX

1 个答案:

答案 0 :(得分:4)

%6.3f格式scanf()不正确。您可能需要%f,或者可能需要%7f。您不能以scanf()格式指定小数位数。