C++ 将vs printf放入以下代码中?

C++ 将vs printf放入以下代码中?,c++,c,C++,C,(IDE:MSVC++) 在上述两个程序中,printf和put-in-if语句之间有什么区别???printf返回打印的字符数(因此,当成功打印非空强函数时,返回值不是0,因此在布尔上下文中为真),而put仅返回一个非负数以表示成功(这很可能是错误的)。 printf返回写入的字符数 put如果成功,则返回非负值 因此: 在第一个代码中,printf返回一个正值,该正值的计算结果为true,else分支永远不会执行,因此只打印ABC 在第二个代码中,放置最有可能成功,并返回0,其计算结果为

(IDE:MSVC++)
在上述两个程序中,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