赞
踩
在C语言中,printf是我们经常使用的一个函数,它名字中的print是打印的意思,而后面的f是format的缩写也就是格式化,所以它的意思就是格式化输出,它的原型声明在头文件stdio.h中。printf函数的一般形式如下:
int printf(const char *format, ...);
printf函数的format是格式化字符串,用于指定输出格式。后面的...是可变参数,用于向函数传递要输出的数据。例如:
- #include <stdio.h>
- int main()
- {
- printf("hello world!\n");
- return 0;
- }
在上面示例中,hello world!\n是输出文本,其中\n是转义字符。转义字符顾名思义就是转变原来意思的字符,它是以反斜杠\开头,后跟一个或多个字符。例如在上面例子中的\n,它所表示的意识是换行,我们可以理解为\让字符n的意思发生了转变,从字符n变成了\n换行,
以下是常用的转义字符:
注意:\ddd是先将八进制数转换为十进制数,然后根据十进制数在ASCII表找到对应的字符,如果在你看的ASCII表中没有十六进制数,那么看到\xdd时也需先将其转换为十进制。
所谓“占位符”,就是这个位置可以用其他的值来代入,可以是常量、变量以及函数。例如:
- #include <stdio.h>
- int main()
- {
- int heigtht = 175;
- float weight = 55.87;
- printf("I am %d years old this year, with a height of %d
- and a weight of %f kg.\n", 22 , heigtht , weight );
- return 0;
- }
上面示例中,I am %d years old this year, with a height of %d and a weight of %f\n是输出文本,而里面的%d和%f就是我们所谓的占位符,表示这个位置用其他的值来代替。占位符的第一个位置规定是%,第二个位置表示占位符的类型,比如整型就用%d,字符型就用%c。printf()的第二个参数是替换占位符的值,比如我们上面的22替换的是第一个%d,height替换的是第二个%d,weight替换的是%f。执行后的输出结果为:I am 22 years old this year, with a height of 175 and a weight of 55.87kg.。
C语言中的占位符如下:
对于上面的占位符我们需要记住一些常用的就能够将上面的所有占位符记住,比如记住了%d,就可以向后面进行延伸,是short int就是%hd,long int就是%ld,long long int就是%lld。常用的占位符:%c,%s,%d,%o,%x,%f,%lf,%p,%%。
printf()可以定制占位符的输出格式。
例如:
- #include <stdio.h>
- int main()
- {
- int score=354;
- float number=123.53465;
- printf("%5d\n",score);
- printf("%-5d\n",score);
- printf("%.4f\n",number);
- printf("%8.4f\n",number);
- printf("%.7s\n","hello world!");
- printf("%+d\n",-12);
- return 0;
- }
下面我们对上面六个不同printf()进行解释。
第一个printf()中的%5d表示这个占位符的宽度最小为5。不满5时,在输出数字的前面补空格。输出的值默认是右对齐,如果想将其改成左对齐需要在占位符的%后加-号,同时补齐也就变成在数字后面补空格,也就是第二行printf()代码。
第三个printf()中的%.4f表示保留小数点后面4位数,不足补0。
第四个printf()中的%8.4f表示输出的宽度最小是8,小数位数是4,其中的小数点.也算一位。我们也可以写成:
printf("%*.*f\n",8,4,number);
第五个printf()中的%.7s表示只输出7个字符,其中空格也算一个字符,即“hello w”
第六个是显示负号,因为默认情况下,printf()不对整数显示+号,只对负数显示-号
输出结果如下:
printf()函数的返回值是返回成功写入的字符数,是一个整数。例如,如果 printf 成功打印一个字符串,则返回该字符串的长度,请看下面的代码:
- #include <stdio.h>
- int main()
- {
- int num=printf("hello world!");
- printf("\n%d",num);
- }
输出的结果为:
其中我把\n放在了第二个printf()函数下是因为\n也是一个字符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。