c++ - 将 vs printf 放在以下代码中?

标签 c++ c

#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 

(开发环境:MSVC++) 上面2个程序中printf和if语句中的puts有什么区别??

最佳答案

  • printf 返回写入的字符数
  • puts 如果成功则返回一个非负值

结果:

  • 在第一段代码中,printf 返回一个正值,其计算结果为 trueelse 分支永远不会执行,因此打印 仅 ABC
  • 在第二个代码中,puts 最有可能成功并返回 0,其计算结果为 false,执行 else 分支,从而打印两者ABCXYZ

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

关于c++ - 将 vs printf 放在以下代码中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4525613/

相关文章:

c++ - 内存意识和大数据

C++过滤调试事件

C++ 预处理器条件参数

python - 参数列表的长度 (3) 和 CL 生成的参数数量 (9) 不一致

有人能解释一下这个C函数吗?

C++ 家庭作业,遇到一些边缘情况和异常输入

c++ - 在二维图像上绘制欧拉角旋转模型

java - 安卓NDK : what happens to memory allocated with malloc when app finishes?

C宏可以更改宏关键字吗

c语言中strcpy会影响strcmp结果吗?