您的位置:首页 > 编程语言 > C语言/C++

c语言输出格式总结

2015-05-09 00:04 330 查看
C语言输出格式总结
1 一般格式
   printf(格式控制,输出表列)
   例如:printf("i=%d,ch=%c\n",i,ch);
   说明:
   (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
         ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换        
           为指定的格式输出。
         ②普通字符,即需要原样输出的字符。
   (2)“输出表列”是需要输出的一些数据,可以是表达式
   (3) printf函数的一般形式可以表示为
         printf(参数1,参数2,……,参数n)
         功能是将参数2~参数n按参数1给定的格式输出
2 格式字符(9种)
    (1)d(或i)格式符。用来输出十进制整数,有以下几种用法:
        ①%d,按整型数据的实际长度输出。
        ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
        ③%ld(%mld 也可),输出长整型数据。
         例如:long a=123456;
               printf("%ld",a);
  ( 2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。
     (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可,%X输出大写十六进制。

     (4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。
       参见:li4-3.c/*无符号数据的输出*/
     (5)c格式符,用来输出一个字符。格式:%c,%mc都可。
     (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
     (7)f格式符,用来输出实数,浮点数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。
       注意:单精度实数的有效位数一般为7位,双精度为16位。
     (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。
     (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。

3控制字符  
       转义字符:   

\a:蜂鸣,响铃  \b:回退:向后退一格  \f:换页  
\n:换行,光标到下行行首  \r:回车,光标到本行行首  \t:水平制表  \v:垂直制表  \\:反斜杠  \':单引号  \":双引号  \?:问号  
\ddd:三位八进制  
\xhh:二位十六进制  
\0:空字符(NULL),什么都不做   
注:  
1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。  2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。  
3,\t 光标向前移动四格或八格,可以在编译器里设置  

4,\' 在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 ' 即可。  5,\? 其实不必要。只要用 ? 就可以了(在windows VC6 和tc2 中验证)。
C语言转义字符和格式控制符参考 

转义字符参考:   

\a:蜂鸣,响铃  \b:回退:向后退一格  \f:换页  

\n:换行,光标到下行行首  \r:回车,光标到本行行首  \t:水平制表  \v:垂直制表  \\:反斜杠  \':单引号  \":双引号  \?:问号  

\ddd:三位八进制  

\xhh:二位十六进制  

\0:空字符(NULL),什么都不做   

注:  

1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。  2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。  

3,\t 光标向前移动四格或八格,可以在编译器里设置  

4,\' 在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 ' 即可。  5,\? 其实不必要。只要用 ? 就可以了(在windows VC6 和tc2 中验证)。    

    格式控制符:

%-m.nd



4 说明
(1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;
(2)“格式控制”字符串内可以包含转义字符;
(3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:
     printf("%f%%",1.0/3);
(4)格式字符表参见下表
                                             表1 printf格式字符

格式字符
说     明
d,i
以带符号的十进制形式输出整数(正数不输出符号)
o
以八进制无符号形式输出整数(不输出前导符0)
x,X
以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u
以无符号十进制形式输出整数
c
以字符形式输出,只输出一个字符
s
输出字符串
f
以小数形式输出单、双精度数,隐含输出6位小数
e,E
以指数形式输出实数
g,G
选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
表2   printf的附加格式说明字符
  

符号属性
长度属性
基本型
所占
位数
取值范围
输入符举例
输出符举例
--
--
char
8
-2^7 ~ 2^7-1
%c
%c、%d、%u
signed
--
char
8
-2^7 ~ 2^7-1
%c
%c、%d、%u
unsigned
--
char
8
0 ~ 2^8-1
%c
%c、%d、%u
[signed]
short
[int]
16
-2^15 ~ 2^15-1
%hd
%hd
unsigned
short
[int]
16
0 ~ 2^16-1
%hu
%hu 、%ho、%hx
[signed]
--
int
32
-2^31 ~ 2^31-1
%d
%d
unsigned
--
[int]
32
0 ~ 2^32-1
%u
%u 、%o、%x
[signed]
long
[int]
32
-2^31 ~ 2^31-1
%ld
%ld
unsigned
long
[int]
32
0 ~ 2^32-1
%lu
%lu 、%lo、%lx
[signed]
long long
[int]
64
-2^63 ~ 2^63-1
%I64d
%I64d
unsigned
long long
[int]
64
0 ~ 2^64-1
%I64u
%I64u、%I64o、%I64x
--
--
float
32
+/- 3.40282e+038
%f、%e、%g
%f、%e、%g
--
--
double
64
+/- 1.79769e+308
%lf 、%le、%lg
%f、%e、%g
--
long
double
96
+/- 1.79769e+308
%Lf、%Le、%Lg
%Lf 、%Le、%Lg

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: