C++ 将vs printf放入以下代码中?
(IDE:MSVC++)C++ 将vs printf放入以下代码中?,c++,c,C++,C,(IDE:MSVC++) 在上述两个程序中,printf和put-in-if语句之间有什么区别???printf返回打印的字符数(因此,当成功打印非空强函数时,返回值不是0,因此在布尔上下文中为真),而put仅返回一个非负数以表示成功(这很可能是错误的)。 printf返回写入的字符数 put如果成功,则返回非负值 因此: 在第一个代码中,printf返回一个正值,该正值的计算结果为true,else分支永远不会执行,因此只打印ABC 在第二个代码中,放置最有可能成功,并返回0,其计算结果为
在上述两个程序中,printf和put-in-if语句之间有什么区别???
printf
返回打印的字符数(因此,当成功打印非空强函数时,返回值不是0,因此在布尔上下文中为真),而put
仅返回一个非负数以表示成功(这很可能是错误的)。
返回写入的字符数printf
如果成功,则返回非负值put
- 在第一个代码中,
返回一个正值,该正值的计算结果为printf
,true
分支永远不会执行,因此只打印else
ABC
- 在第二个代码中,
最有可能成功,并返回0,其计算结果为放置
,执行false
分支,从而打印else
和ABC
XYZ
put
也会追加一个换行符,而printf
则不会。put()
追加一个换行符并返回一个不同的值(成功时非负[可能包括0],失败时为1)。成功时返回写入的字符数,在您的情况下为3
成功时返回一个非负数,也可以是
0
。在您的情况下,它返回了一个0
,使else部分执行。表示写入“ABC”然后因为成功,它返回0,然后在C,C++中0表示false,然后执行另一个块,然后打印WT返回到其他块中。……M i i正确。它可以返回0。或者它可以返回其他东西。你唯一可以做的就是比较返回值和代码< EOF ^ ^谢谢你的慷慨和支持。
#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