首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将vs printf放在下面的代码中?

将vs printf放在下面的代码中?
EN

Stack Overflow用户
提问于 2010-12-24 18:06:58
回答 4查看 909关注 0票数 0
代码语言:javascript
复制
#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语句有什么不同??

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-24 18:10:24

  • printf返回字符数written
  • puts在成功的情况下返回非负值

结果是:

  • 在第一个代码中,printf返回一个计算结果为true的正值,else分支从不执行,因此在第二个代码中只打印ABC
  • puts很可能成功并返回0,计算结果为<代码>D17,执行<代码>D18分支,从而同时打印<代码>D19和XYZ

正如其他人所指出的,puts也会附加一个换行符,而printf不会。

票数 4
EN

Stack Overflow用户

发布于 2010-12-24 18:10:39

puts()追加一个换行符并返回一个不同的值(非负值,成功时可能包含0,失败时返回-1 )。

票数 3
EN

Stack Overflow用户

发布于 2010-12-24 18:10:18

printf返回打印的字符数(因此,当成功打印非空强字符串时,返回值不是0,因此在布尔上下文中为真),而puts只是返回一个非负数来表示成功(很可能是0,也就是false)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4525613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档