第1个回答 2020-01-10
这个如果只有一个数的话,是没问题的;如果超过两个数的话,有风险。
假如你要往一个文件中写入两个数,而它们写进去的时候,因为所占位数都比较多,造成两个数写入的时候相连,就会出问题。例如:
int
main()
{
double
a
=
1234567.23456789,
b
=
4567890123.56789012;
FILE*
pFile
=
fopen("a.txt",
"w");
fprintf(pFile,
"%16.6f",
a);
fprintf(pFile,
"%16.6f",
b);
fclose(pFile);
pFile
=
fopen("a.txt",
"r");
fscanf(pFile,
"%lf",
&a);
fscanf(pFile,
"%lf",
&b);
fclose(pFile);
printf("%f
%f",
a,
b);
}
写到文件中的结果是:
1234567.2345684567890123.567890
因为两个数连在一块了,所以再读出的时候,b就变成了0.567890。
为了安全,你在写入的时候,应该加个分隔符,比如空格。
fprintf(fp,"%16.6f
",data);