字符串格式化(format)

来源:互联网 发布:linux 文本搜索命令 编辑:程序博客网 时间:2024/05/21 19:28

对不同的类型有不同的格式字符。

(1)%md,m为指定的输出字段宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。如:

printf("%4d,%4d", a, b);

若a=123, b=12345,则输出结果为" 123", "12345".

(2)%ld输出长整型。

(3)%o格式符,以八进制形式输出整数。 符合位也将一起作为八进制数输出。

(4)%x格式符,以十六进制形式输出整数。同样也不会出现负数的十六进制数。

(5)%u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。

(6)%c格式符,用力输出一个字符,也可以指定输出字数宽度,如:

printf("%3c", c); //如果c='a'那么输为"  a"

(7)%s格式符,输出字符串。有几种用法:

1.%ms,若字符串本身长于m,则全部输出,若小于m则左补空格。

2.%-ms,若字符串长小于m则右补空格。

3.%m.ns,输出m列,但只取字符串左端n个字符,这n个字符输出在m列的右则,左补空格。

4.%-m.ns,其中m、n同上,n个字符输出在m列的左则,右补空格。如果n>m,则m自动取n值,保证n个字符正常输出。

(8)%f格式符,输出实数(包括单、双精度浮点数),以小数形式输出。

1.%f,不指定字宽。

2.%m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于m则左补空格。

3.%-m.nf,基本同上,但这次右补空格。

(9)%e格式符,以指数形式输出实数。printf("%e",123.456);输出1.23456+002.

%m.ne和%-m.ne同上,这里n表示小数位数。

printf("%e  %10e  %10.2e  %.2e  %-10.2e,f,f,f,f,f);

"1.234560e+002  1.234560e+002  1.23e+002  1.23e+002  1.23e+002 "

(10)%g格式符,输出实数,根据数值大小自动选择用%f还是%e.

写漏了个%i,用于输出十进制,八进制,十六进制的整数。

原创粉丝点击