【发布时间】:2010-08-01 19:30:00
【问题描述】:
#include<stdio.h>
main()
{
float x=2;
float y=4;
printf("\n%d\n%f",x/y,x/y);
printf("\n%f\n%d",x/y,x/y);
}
输出:
0
0.000000
0.500000
0
用 gcc 4.4.3 编译 程序退出,错误代码 12
【问题讨论】:
-
我很想修改这个问题 - 仅用于在字符串开头使用“\n”。否则,这就是为什么激活编译器警告总是个好主意。
-
说我笨,但是字符串开头的换行符是怎么回事?
-
@dmckee 废话,您可以在字符串的任何位置放置换行符。见鬼,你可以在字符串中穿插多个换行符 - 非常好的 C 代码。
-
@Neil:你可以。然后你忘记像上面的代码一样添加清理行,你给我留下了
0dmckee@thorin$作为提示,并在输出的开头添加了一个完全不必要的额外行。根据需要在中间放置尽可能多的换行符,当它使代码循环更清晰时使用前导换行符,但当它们等效时,更喜欢结束换行符。 -
ISO C99 在第 7.19.2p2 节中指出,如果文本文件不以换行符结尾,则不能保证最后一行出现在输出中。
标签: c floating-point double printf