#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 in if语句在上面2个程序中有什么区别??
答案 0 :(得分:4)
printf
返回写入的字符数puts
会在成功时返回非负值结果:
printf
返回一个正值,其值为true
,else
分支从不执行,因此仅打印ABC
puts
很可能成功并返回0,其值为false
,else
分支将被执行,从而打印ABC
和{{1 }} 正如其他人所指出的那样,XYZ
也会附加换行符,而puts
则不会。{/ p>
答案 1 :(得分:3)
puts()
附加换行符并返回一个不同的值(非负[可能包括0]成功,-1表示失败)。
答案 2 :(得分:1)
printf
返回打印的字符数(因此,当成功打印非空强时,返回值不为0,因此在布尔上下文中为true),而puts
只返回非 - 表示成功的负数(很可能是0,也就是假)。
答案 3 :(得分:0)