格式字符控制:
说明:sprintf(格式化后的字符,"%(长度)格式符",格式化前的字符);
1、 d格式符。用来输出十进制数。有以下几种用法:
(1)、%d按整数的实际长度输出。
(2)、%md,m为指定的输出字段的宽度。如果数据位数小于m,则左端补以空格,若大于m,则按实际位数输出。(3)、%ld,输出长整型数据。例:long a=135790;printf(“%ld”,a);如果用%d输出就会发生错误,因为整型数据的范围是-32768到32767.对long型数据应当用%ld格式输出,对长整型数据也可以指定字段宽度,如:%8ld。
2、 o格式符,以八进制数形式输出整数。由于内存单元中的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制的一部分输出。
3、 x格式符,以十六进制数形式输出整数。同样不会出现负的十六进制数。同样可以用%lx输出长整型数,也可以指定输出字段宽度。
4、 u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。一个有符号整数(int型)也可以用%u格式输出,反之,一个unsigned型的数据也可以用%d格式输出。按相互赋值的规则处理。Unsigned型数据也可以用%x格式输出。
5、 c格式符,用来输出一个字符。一个字符型数据也可以用整数形式输出。
6、 s格式符,用来输出一个字符串。
(1)、%s,printf(“%s”,“HELLO”);
(2)、%ms输出字符串占m列,如字符串本身大于m,则突破m的限制,字符串全部输出,如果小于m,则左补空格。(3)、%-ms如果字符串小于m,则在m范围内,字符串向左靠,右补空格。
(4)、%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
(5)、%-m.ns,其中m,n含义同上,n个字符输出在m范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
7、 f格式符,用来输出实数(包括单,双精度),以小数形式输出。
(1)、%f,不指定字段宽度,有系统自动指定,使整数部分全部如数输出,并输出6位小数。应当注意,并非全部数字都是有效数字。单精度实数的有效位数一般是7位。
(2)、%m.nf指定输出的数据占m列,其中有n位小数。如果数值长度小于m,则左补空格。
(3)、%-m.nf与%m.nf基本相同,只是输出的数值向左端靠,右端补空格。
8、 e格式符,以指数形式输出。
9、 g格式符,用来输出实数,它根据数值的大小,自动选择f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。
*********************************************************
Code
格式
%c
字符
%d
带符号整数
%i
带符号整数
%e
科学计数法, 使用小写"e"
%E
科学计数法, 使用大写"E"
%f
浮点数
%g
使用%e或%f中较短的一个
%G
使用%E或%f中较短的一个
%o
八进制
%s
一串字符
%u
无符号整数
%x
无符号十六进制数, 用小写字母
%X
无符号十六进制数, 用大写字母
%p
一个指针
%n
参数应该是一个指向一个整数的指针
指向的是字符数放置的位置
%%
一个'%'符号
一个位于一个%和格式化命令间的整数担当着一个最小字段宽度说明符,并且加上足够多的空格或0使输出足够长. 如果你想填充0,在最小字段宽度说明符前放置0. 你可以使用一个精度修饰符,它可以根据使用的格式代码而有不同的含义.
用%e, %E和 %f,精度修饰符让你指定想要的小数位数. 例如,
%12.6f
将会至少显示12位数字,并带有6位小数的浮点数.
用%g和 %G, 精度修饰符决定显示的有效数的位数最大值.
用%s,精度修饰符简单的表示一个最大的最大长度, 以补充句点前的最小字段长度.
所有的printf()的输出都是右对齐的,除非你在%符号后放置了负号. 例如,
%-12.4f
将会显示12位字符,4位小数位的浮点数并且左对齐. 你可以修改带字母l和h%d, %i, %o, %u和 %x 等类型说明符指定长型和短型数据类型 (例如 %hd 表示一个短整数). %e, %f和 %g 类型说明符,可以在它们前面放置l指出跟随的是一个double. %g, %f和 %e 类型说明符可以置于字符'#'前保证出现小数点, 即使没有小数位. 带%x类型说明符的'#'字符的使用, 表示显示十