修饰词
%hh (需要C99后) | 限定输出格式为8位,即1个字节 |
---|---|
%h | 限定输出格式为16位,即2个字节 |
%l | 限定输出格式为32位,即4个字节 |
%ll | 限定输出格式为64位,即8个字节 |
占位符
空白符包括回车符\r, 换行符 \n, 制表符 \t(Tab)。
%g | 输出实数(f格式或e格式),系统根据数据占宽度m大小,自动选择占宽度较小的某种格式输出,不输出小数点后无意义的零,默认宽度为6。 |
---|---|
%d | 整型(int)输出 |
%ld | 长整型(long)输出 |
%s | 输出字符串(char数组),遇'\0'停止。输入时,遇空白字符停止。 |
%c | char型,输出一个字符 |
%p | 16进制打印指针的值 |
%f | 单精度浮点型(float),默认情况下保留小数点6位,如1.000000。 |
%lf | 是双精度浮点型,默认情况下保留小数点6位,通常用来输出double型 |
%e | 以指数形式输出实数 |
%o | 以八进制数形式输出整数 |
%x | 以十六进制数形式输出整数,或输出字符串的地址 |
-
%10d右对齐,%-10d左对齐,默认空格填充,%05d有0标志用0填充。
-
“%”与字母之间可以插入数字表示场宽,如%2d表示输出2位整型数,不够2位右对齐
-
%.2f用来输出小数,保留两位小数,如1.00
-
%g,%e,%f都会在精度的下一位四舍五入
-
%g默认保留六位有效数字输出
-
scanf("%s",s);这里不能有&符号。
-
%m.ns。输出占m列,但只取字符串中的左端n个字符,这n个字符输入输出在m列的右则,左则补空格。
-%m.ns。n个字符输出在m列的左侧,右侧补空格。
注意:%d
与%u
有无符号的数值范围,也就是极限的值,不然数值打印出来会有误
//dev-c++
#include <stdio.h>
int main(){
printf("%3s,%7.2s,%.4s,%-5.3s\n","china","china","china","china");
printf("%g,%g\n",5,6.0);
printf("%g,%g,%g\n",9.555555,123.55555,1234567.6666);
return 0;
}
//china, ch,chin,chi
//2.47033e-323,6
//9.55556,123.556,1.23457e+006