#include "stdio.h"
#include "conio.h"
int main(void)
{
if(printf("ABC"))
{
}
else
{
printf("XYZ");
}
_getch();
return 0;
}
output : ABC
----------------------------------------------------------------------------------------
#include "stdio.h"
#include "conio.h"
int main(void)
{
if(puts("ABC"))
{
}
else
{
printf("XYZ");
}
_getch();
return 0;
}
output : ABC XYZ (IDE : MSVC++)上面两个程序中的printf和put的if语句有什么不同??
发布于 2010-12-24 18:10:24
printf返回字符数writtenputs在成功的情况下返回非负值结果是:
printf返回一个计算结果为true的正值,else分支从不执行,因此在第二个代码中只打印ABC puts很可能成功并返回0,计算结果为<代码>D17,执行<代码>D18分支,从而同时打印<代码>D19和XYZ正如其他人所指出的,puts也会附加一个换行符,而printf不会。
发布于 2010-12-24 18:10:39
puts()追加一个换行符并返回一个不同的值(非负值,成功时可能包含0,失败时返回-1 )。
发布于 2010-12-24 18:10:18
printf返回打印的字符数(因此,当成功打印非空强字符串时,返回值不是0,因此在布尔上下文中为真),而puts只是返回一个非负数来表示成功(很可能是0,也就是false)。
https://stackoverflow.com/questions/4525613
复制相似问题