#C语言 printf介绍
##1.1基本用法
printf()的作用是将参数文本输出到屏幕。名字里的f代表 format(格式化),表示可定制输出文本的格式。
#include<stdio.h>
int main()
{
printf("Hello Word\n");
return 0;
}
`
printf()不会自行在行尾添加"\n"(换行符),运行结束后,光标停留在输出结束的地方,不会自动换行。
要让光标移到下一行的开头,可以在输出文本的结尾,添加一个换行符"\n"。
##1.2占位符
printf()可以在输出文本中指定占位符。 可以在占位符这个位置用其他值代入。
#include <stdio.h>
int main()
{
printf("There are %d apples\n", 6);
return 0;
}
里面的%d就是占位符,表示这个位置要用其他值来替换。占位符的第一字符一律为百分号%,第二个字符表示占位符的类型,%d表示代入的值必须是一个整数。
%s 表示代入的是字符串。
}
#include <stdio.h>
int main()
{
printf("%s", "haha");
return 0;
printf()参数与占位符是一一对应的关系,如果有n个占位符,printf()的参数就应该有n+1个,如果参数个数少于对应的占位符,printf()可能会输出内存中的任意值。
##1.3 常用占位符
%c字符 %d 十进制整数 %f 小数 float类型和double类型 %p 指针 %s字符串
%u无符号整数
##1.4输出格式
printf()可以定制站位符的输出格式
##1.4.1限制宽度
printf()允许限定占位符的最小宽度
#include<stdio.h>
int main()
{
printf("%5d\n", 123);
return 0;
}
%5d 表示这个占位符的宽度至少为五位。如果不满五位,对应的值前面会添加空格。输出的值默认是右对齐,输出内容前面会有空格;如果改成左对齐,在输出内容后面添加空格,可以在占位符的%的后面插入一个-号。
对于小数,这个限定符会限制所有数字的最小显示宽度
#include<stdio.h>
int main()
{
printf("%12f\n", 123.45);//小数点后默认打6位 123.450000
return 0;
}
上面实例中,%12f表示输出的浮点数最少要占据12位。由于小数的默认显示精度是小数点后6位,所以123.45输出的结果的头部会添加2个空格。
##1.4.2总是显示正负号
默认情况下printf()正数不显示+号,只显示负数的—号。如果想让正数也输出+号可以在占位符的%后面假一个+。
#include<stdio.h>
int main()
{
printf("%+d\n", 10);
printf("%+d\n",-10);
return 0;
}
%+d可以确保输出的数值,总是带有正负号。
##1.4.3限定小数位数
输出小数时,有时想要限定小数的位数,例如小数点后面只保留两位数,占位符可以写成%.2f
#include<stdio.h>
int main()
{
printf("Number is %.2f\n",0.5);
return 0;
}
如果希望小数点后面输出3位()0.500,占位符就要写成%.3f。
这种写法可以与限定宽度占位符,结合使用。
%6.2f表示输出字符串最小宽度为6,小数位数为2,所以,输出字符串的头部有两个空格。
最小宽度和小数位数这两个限定值,都可以用*代替,通过printf()的参数传入。
#include<stdio.h>
int main()
{
printf("%*.*f\n",6,2,0.5);
return 0;
}
%*.*f的两个星号通过printf()的两个参数6和2传入。
##1.4.4输出部分字符串
%s占位符用来输出字符串,默认是全部输出,如果只想输出开头部分,可以用%.[m]s指定输出的长度,其中[m]代表一个数字,表示所要输出的长度。
#include<stdio.h>
int main()
{
printf("%.5s\n","hello world");
return 0;
} //输出 hello
占位符%.5s表示只输出字符串"hello word"的前5个字符,即“hello”。