c++,输出空格问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 12:25:56
#include <stdio.h>
#include<math.h>
void main ()
{
FILE * fp = NULL;
fp = fopen("result.txt","w");
double A,B,x,y,I;
printf ("enter A and B \n");
scanf("%lf%lf",&A,&B);
printf("波长是%lf,相位差是%lf",A,B);
for (x=-35.0;x<35;x=x+0.14)
{
for(y=-35.0;y<35;y=y+0.14)
{
if (x*x+y*y<1225)
I=A*A*sin(atan2(x, y))*sin(atan2(x,y))*B;
else
I=0.0; (我想将0.0改为空格)
fprintf(fp,"%lf ",I);
}
fprintf(fp,"\n");
}
fclose(fp);
}

你不能这样写吗?
if (x*x+y*y<1225)
{
I=A*A*sin(atan2(x, y))*sin(atan2(x,y))*B;
fprintf(fp,"%lf ",I);
}
else
fprintf(fp,"%c ",' ');

由于事先定义I为double类型,所以直接将0.0修改为空格会出错的。可以在定义一个字符类型的变量char C;将I=0.0换成语句C=' ';下面函数调用的时候也要相应用if判断和转换。

空格属于字符型,你定义的是双精度。可以定义一个字符型数据,表示空格。