请教一个文件读写的怪异问题
我写了以下一段代码
fprcd=fopen( "fprintf.out ", "a " );
ifile=1;
ittotal=1;
dt=1;
f0=1;
ttotal=1;
tau0=1;
angletheta=1;
anglephi=1;
fprintf(fprcd, "%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\n ", ifile,ittotal, dt, f0, ttotal, tau0, angletheta, anglephi);
结果出来的不是:
1 1 1 1 1 1 1 1
而是:
1 0 5.29981e-315 5.29981e-315 5.29981e-315 5.29981e-315 5.29981e-315 5.29981e-315
[解决办法]
"%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\n "
确认这个格式控制串是正确的
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fprcd=fopen( "test.txt ", "a " );
int ifile=1;
int ittotal=1;
float dt=1;
float f0=1;
float ttotal=1;
float tau0=1;
float angletheta=1;
float anglephi=1;
fprintf(fprcd, "%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\n ", ifile,ittotal, dt, f0, ttotal, tau0, angletheta, anglephi);
system( "PAUSE ");
return 0;
}
没有问题 ...
[解决办法]
%g 对应浮点数数值,
%d 对应整型数值。
从你的结果来看,ittotal应该不是 int 类型的吧?是一个浮点数据?%d格式控制出错了 ...
[解决办法]
ifile=1;
ittotal=1;
dt=1;
f0=1;
ttotal=1;
tau0=1;
angletheta=1;
anglephi=1;
===============>
int ifile=1;
int ittotal=1;
float dt=1;
float f0=1;
float ttotal=1;
float tau0=1;
float angletheta=1;
float anglephi=1;