
①%: 表示格式描述的开始符号,必不可少.
②-: 是-表示左对齐输出. 如果省略,则表示输出为右对齐.
③0: 如果为0,则表示填写指定的空间. 如果省略printf输出数字,则表示未填充指定的空间.
④m.n: m是指字段宽度,即输出设备上相应输出项所占用的字符数. n表示准确性. 用于描述输出的实数类型的小数位数. 指定n时,隐含的精度为n = 6位数字.
⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数格式的字符修改为short.
-----------------------------------
设置字符格式
The

格式字符指定输出项目的数据类型和输出格式.
①d格式: 用于输出十进制整数. 有几种用途:
%d: 根据整数数据的实际长度输出.
%md: m是指定输出字段的宽度. 如果数据的位数小于m,则在左端添加一个空格. 如果大于m,则输出实际数字.
②o格式: 以无符号八进制形式输出整数. long类型可以“%lo”格式输出. 您还可以指定要以“%mo”格式输出的字段宽度.
示例:
主要()
{int a = -1;

printf(“%d,%o”,a,a);
}
运算结果: -1,177777
程序分析: 存储单元中的-1(以二进制补码形式存储)为(111111111111111111)2,将其转换为八进制数(177777)8.
③x格式: 以无符号十六进制形式输出整数. 长整数可以“%1x”格式输出. 您还可以指定要以“%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具有与上述相同的含义,在m列范围的左侧输出n个字符,并在右侧添加空格. 如果n> m,则自动获取n的值,即保证正常输出n个字符.
⑦f格式: 用于输出实数(包括单精度和双精度),并以十进制形式输出. 有几种用途:
%f: 如果未指定宽度,则输出所有整数部分,并输出6个小数位.
%m.nf: 输出占用m列,n位小数. 如果宽度值小于m的左端,则添加空格.

%-m.nf: 输出总共占据m列,其中n位小数. 如果宽度值小于m的右端printf输出数字,则添加空格.
⑧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%.
-----------------------------------
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-157233-1.html
民族生存都难以做到