从txt文本中一行行地读取出浮点数
假设定义文件内容为:
123.4
231.4
1.2565
-0.000334
使用fscanf函数从文件中读取数据,每次读取一行。
fscanf严格按照数据类型来读取,如果是要读取并保存在double类型的数据a里面,则占位符应该是%lf。
建议加上换行符
FILE *p =fopen("./fp.txt","r");
double a;
int cnt;
while(!feof(p))
{
fscanf(p, "%lf\n",&a);
cnt ++;
printf("%0d, %lf\n", cnt, a );
}
fclose(p);
(base) G:\codes\C>out.exe
1, 123.400000
2, 231.400000
3, 1.256500
4, -0.000334
如果a定义为double,fscanf的占位符是%f,则无法读出数据:
FILE *p =fopen("./fp.txt","r");
double a;
int cnt;
while(!feof(p))
{
fscanf(p, "%f\n",&a);
cnt ++;
printf("%0d, %f\n", cnt, a );
}
fclose(p);
(base) G:\codes\C>out.exe
1, 0.000000
2, 0.000000
3, 0.000000
4, 0.000000