在c ++中的一个语句中使用多个printf

时间:2014-12-30 16:51:43

标签: c++ iostream stdio

你好,我是这个论坛的新手,我是一名学习c ++的学生!我很方便与cout<<出于输出的目的,但现在我想使用printf。

cout<<((2>1)"yes":"no")<<"hello";

在一个cout语句中使用这两个是可能的,但是可以使用printf。 我的意思是尝试以下但它失败了!错误!

printf (  (2>1)?"yes":"no"  );// this gives the output yes but

printf (  ((2>1)?"yes":"no") ("hello")  );//this did not

printf (  ((2>1)?"yes":"no")  "hello"   );// neither did this.

3 个答案:

答案 0 :(得分:3)

使用单个格式字符串,然后根据您的条件选择参数值:

printf("%s %s", (2 > 1) ? "yes" : "no", "hello");

或只是:

printf("%s hello", (2 > 1) ? "yes" : "no");

答案 1 :(得分:2)

printf("%s %s", ((2>1)?"yes":"no"), "hello");

会给出相同的输出。

答案 2 :(得分:-1)

编译器的预处理器将合并由空格分隔的静态字符串,因此以下将起作用

printf(
   "Now is the time "
   "for all good men "
   "to come to the aid "
   "of their country."
   );

没有括号。没有逗号。只是静态引号(空格,制表符,cr,lf)之间的空格