格式输入与输出详解:
1. printf函数的一般格式为 : printf(格式控制,输出表列);
例如 printf(“%d,%c\n”,i,c);
格式控制是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息。
1,格式说明。 格式说明由“%”和格式字符组成,如%d,%c等,作用是将输出的数据转换为指定的格式。
2,普通字符,普通字符既需要原样输出的字符,
输出表列:是需要输出的一些数据,可以是表达式。
二。格式字符
1 %d,按十进制整形数据的实际长度输出
%md,m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld ,输出长整形数据,例如
long int a = 135790;
printf("%ld",a);如果用%d输出,就会发生错误,因为整型的数据范围为-32768~32767。对于long型数据应当用%ld格式输出。
对于长整形数据也可以指定字段宽度。
一个int数据也可以用%d或%ld格式输出。
2.o格式字符,以8进制整数形式输出,注意由于将内存单元中的各位的值(0或1)按8进制形式输出,因此输出的数值不带符号,即将符号位也一起作为8进制数的一部分输出。
3.x格式符,以十六进制数形式输出整数
4.u格式符,用来输出unsigned型数据,即无符号数,以十进制整数形式输出,
5.c格式符,用来输出一个字符。也可以指定字符宽度,
char c = ‘a’;
int i = 97;
printf(“%c,%d”,c,c);
printf(“%c,%d”,i,i); printf(“%3c”,c);这时c变量输出占3列,前两列补空格。
6.%s 格式字符,用来输出一个字符串。
1. %s 例如 : printf(“%s”,”CHINA”);
2 %ms 输出的字符串占m列,如果字符串本身大于 m,则突破m的限制,将字符串全部输出,若串长小于m,则左补空格。
3 %-ms 如果串长小于m,则在m列范围内,字符向左靠拢,右端补空格。
4 %m.ns 输出占m列,但只取字符串中左端n个字符,输出在m列的右侧,左端补空格
5 %-m.ns 其中m,n含义同上,n个字符输出在m列的左侧,右补空格,如果n大于m,则m自动取n,既保证n个字符正常输出
7, f格式符。用来输出实数,以小数形式输出
1 %f 不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位一般为7位,
2 %m.nf, 指定输出的数据共占m列,其中有n位小数,如果数值长度小于m,则左端补空格。
3 %m.nf %-m.nf 基本相同,只是是输出的数值向左端靠,右端补空格。
e 格式符,以指数形式输出实数
可指定输出数据占的宽度
%m.ne 和 %-m.ne 含义与上述相同
g 格式符,用来输出实数,它根据数值的大小,自动选用f格式或e格式(选择输出时占宽度比较小的一种,且不输出无意义的零)
总结
d,i 以带符号的十进制形式输出整数,(正数不输出符号)
o 以8进制无符号形式输出整数(不输出前导符 0 )
X ,x 以16进制无符号形式输出整数(不输出前导符 0x ),用x 则输出16进制中的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号10进制形式输出整数
c 以字符型式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单。双精度数,隐含输出6位小数
E , e 以指数形式输出实数,用e时指数以“e”表示(如1.2e+02),用E时以“E”表示,如(1.2E+02)
G ,g 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0,用“G”时,若以指数形式输出,则指数以大写表示。