在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
答案 0 :(得分:4)
%6.3f
格式scanf()
不正确。您可能需要%f
,或者可能需要%7f
。您不能以scanf()
格式指定小数位数。