
printf格式控件的完整格式:
%-0 m.n l或h格式字符
以下是格式说明的每个组成部分的说明:
①%: 表示格式描述的开始符号,必不可少.
②-: 是-表示左对齐输出,如果省略则表示右对齐输出.
③0: 0表示指定的间隙用0填充,如果省略,则表示指定的间隙未填充.
④m.n: m表示字段宽度,即相应的输出项在输出设备上占据的字符数. N代表准确性. 用于描述输出实数的小数位数. 指定n时,隐含精度为n = 6位数字.
⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数类型的格式字符修改为短类型.
----------------------------
设置字符格式

格式字符用于指定输出项目的数据类型和输出格式.
①d格式: 用于输出十进制整数. 有几种用法:
%d: 根据整数数据的实际长度输出.
%md: m是指定输出字段的宽度. 如果数据位数小于m,则左端用空格填充;如果数据位数大于m,则按实际位数输出.
%ld: 输出长整数数据.
②o格式: 以无符号八进制形式输出整数. 对于长整数,可以使用“%lo”格式进行输出. 您还可以指定字段宽度并以“%mo”格式输出.
示例:
主要()
{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列的范围内,字符串在左侧printf 格式控制,空格填充在右侧.

%m.ns: 输出占用m列,但仅从字符串的左端开始取n个字符. n个字符输出到m列的右侧,并在左侧留空格.
%-m.ns: 其中m和n与上述含义相同,在m列范围的左侧输出n个字符,并在右侧添加空格. 如果n> mprintf 格式控制,则自动取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格式中较短的一种进行输出,并且不会输出无意义的零.

--------------------------------------
有关printf函数的进一步说明:
如果要输出字符“%”,则应在“格式控制”字符串中使用两个连续的%s,例如:
printf(“%f %%”,1.0 / 3);
输出0.333333%.
--------------------------------------
对于单精度数字,使用%f格式字符输出时,只有前7位是有效数字,而小数位是6.
对于双精度数字,使用%lf格式的字符输出时,前16位是有效数字,而6位是十进制数字.
m.n的格式也可以表示如下(示例)
char ch [20];
printf(“%*. * s \ n”,m,n,ch);
前面的*表示总宽度,后面的*表示输出数量. 分别对应于外部参数m和n. 我认为这种方法的优点是可以在语句外部分配参数m和n来控制输出格式.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-201409-1.html
何谈人人赚钱
难拢人心