double d,e,f;
我有3个变量,我的程序在某些行中需要空格字符。我尝试了所有但不能找到的。
d='space character'
这就是我需要的。
if(...) 在这里d,e和f计算数字
else{
o="no";
w="";
d= ' ' ;
e =' ';
f=' ';
quest="";
}
fprintf(bb,"%-10s%-13s%-13.2lf\t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, d,e,f,quest);
printf( "%-10s%-13s%-13.2f\t%-13.2f\t%-13.2f\t%-3s\n\n", o, w, d,e,f,quest );
答案 0 :(得分:1)
如果d值等于32
则会打印空格。
double d;
if (somecondition)
{
d=32;
printf("%c==%d==%f",(char)d,(int) d,d ); //cast to char while printing
}
你不应该将' '
(空格)加倍。
当你想要时,将32
存储到d并使用强制转换。
根据你的编辑,你可以这样做
if(...)
{
//do calculations and print and print statements inside if
fprintf(bb,"%-10s%-13s%-13.2lf\t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, d,e,f,quest);
}
else
{
//modify fprintf and printf statements, do not modify values
fprintf(bb,"%-10s%-13s%- \t%-13.2lf\t%-13.2lf\t%-3s\n", o, w, e,f,quest);
//^^ here use space.do not use this ^^ argument d
}
答案 1 :(得分:0)
将d
声明为char
。
char d;
...
if(......)
d = ' ';
答案 2 :(得分:0)
在C语言中,所有字符都以小整数(通常为1字节大)存在。将字符存储在用于浮点计算的变量中是没有意义的。
相反,构建了所需格式的输出格式字符串。最明显的是
printf("%f %f %f", d, e, f);
或者sprintf
,以防你需要字符串用于其他目的而不是在屏幕上打印。
编辑:如果空间的输出应该取决于双打的值,那么你应该这样做:
signed char ascii_value = ' ';
if ( fabs(my_double - (double)ascii_value) <= epsilon * fabs(my_double) )
{
print(ascii_value);
}
如果您完全不知道上述内容是什么或为什么我这样做,您可能不应该在任何点编程上浮动,而不是在reading this之前。