携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情
转换说明可以理解为翻译说明。例如,%d的意思是“把给定的值翻译成十进制整数文本并打印出来”。
printf()的返回值
大部分C函数都有一个返回值,这个是函数计算并返回给主调程序的值。例如,C库包含一个sqrt()函数,接受一个数作为参数,并返回该数的平方根。可以把返回值赋给变量,也可以用于计算,还可以作为参数传递。总之,可以把返回值像其他值一样使用。printf()函数也有一个返回值,它返回打印字符的个数。如果有输入错误,printf()则返回一个负值。下面这个例子演示了如何确定函数的返回值。
举个例子
#include <stdio.h>
int main(){
int bph2o = 212;
int rv;
rv = printf("%d F is water's boiling point.\n",bph2o);
printf("The printf() function printed %d characters.\n",rv);
return 0;
}
运行结果
从这个例子可以看出,程序用 rv = printf(……);的形式把printf()的返回值赋给rv。因此,该语句执行了两项任务:打印信息和给变量赋值。其次,注意计算针对所有字符数,包括空格和不可见的换行符(\n).
打印较长字符串
有时候printf()语句太长,在屏幕上不方便阅读。如果空白(空格,制表符,换行符)仅用于分隔不同的部分,C编译器会忽略它们。因此,一条语句可以写成多行,只需在不同部分之间输入空白即可。例如:
printf("The printf() function printed %d characters.\n",
rv);
该语句在逗号和rv之间断行。为了让阅读者知道该行未完,对rv进行缩进。C编译器会忽略多余空白。但是不能在双引号括起来的字符串中间断行。例如,
printf(“The printf() function printed %d
characters.\n",rv)
这样写是不对的,无法运行下去。因为字符串常量中有非法字符,在字符串中可以使用\n来表示换行字符,但不能通过按下Enter键产生实际的换行符。
有3种字符串换行的方法:
- 第一种
printf("Here's one way to print a ");
printf("long string.\n");
使用多个printf()语句。因为第1个字符串没有以\n字符结束,所以第二个字符串紧跟第一个字符串末尾输出。
- 第二种
printf("Here's one way to print a \
long string.\n");
用反斜杠和Enter键组合来断行。这使得光标移至下一行,而且字符串中不会包含换行符。其效果是在下一行继续输出。但是,下一行代码必须和程序中的代码一样从最左边开始。如果缩进该行,比如缩进5个空格,那么这5个就会成为字符串的一部分。
- 第三种
printf("Here's one way to print a"
"long string.\n");
用两个双引号括起来的字符串之间用空白隔开,C编译器会把多个字符串看成一个字符串。