Printf函数:格式化就是把你要输出的数字按照一定的格式输出
%d 代表整型
%c 代表单个字符
%s 代表字符串
字符串长度不足补空格%f 代表的是实数,可以用小数形式和指数形式的输入
%e %E %g %G与%f格式相同
%u 代表无符号的十进制整数
%o 代表八进制无符号形式输入整数
%x 代表十六进制无符号整数
同时scanf函数还可以加上格式修饰符l或L待表输入长整型数据
h代表输入短整型数据
m代表域宽用来制定输入数据所占的宽度(列数)但不能用来制定实型数据的宽度,应为正整数
格式字符
格式字符用以指定输出项的数据类型和输出格式。
(1)d格式:用来输出十进制整数。有以下几种用法:
%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。
数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
②o格式:以无符号八进制形式输出整数。
对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。
main()
{ int a = -1;
printf("%d, %o", a, a);
}
运行结果:-1,177777
程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
③x格式:以无符号十六进制形式输出整数。
对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。
④u格式: 以无符号十进制形式输出整数。
对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。
⑤c格式: 输出一个字符。
⑥s格式:用来输出一个串。有几中用法
%s: 例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms: 输出的字符串占m列,
如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。
若串长小于m,则左补空格。
%-ms: 如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns: 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns: 其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。
如果n>m,则自动取n值,即保证n个字符正常输出。
⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:
%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
⑧e格式:以指数形式输出实数。可用以下形式:
%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。
⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。
整数前补0: printf("%03d\n", 28); --- 028
小数后补0: printf("%0.7f", 2.1); --- 2.1000000
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论