フォーマット変換説明子scanf,printfフォーマット%大全/フォーマット入出力
7996 ワード
, printf. sprintf,scanf,sscanf...$^&*
char c='c';printf("char=%d",c); , .
char buf[2]; sscanf("30000","%d",buf); , .
2 32767 , .
.
.
, ,
printf() / scanf()
%a
、 p- (C99)
%A
、 P- (C99)
%c
%d
%e
、e-
%E
、E-
%f
,
%g
%f %e。%e -4
%G
%f %E。%E -4
%i
( %d )
%o
%p
( )
%s
%u
%x
0f
%X
0F
%%
printf()
(-、+、 、# 0) ,
digit(s)
。 , 。 :“%4d”
.digit(s)
。 %e、%E %f , 。 %g %G , 。 %s , 。 , ; , 。 “.” , %.f %.0f 。 :“%5.2f” , 5 , 。
h
, short int unsigned short int 。
:“%hu”、“%hx” “%6.4hd”
hh
, signed char unsigned char 。
:“%hhu”、“%hhx” “%6.4hhd”
j
, intmax_t uintmax_t 。
:“%jd” “%8jX”
l
, long int unsigned long int 。
:“%ld” “%8lu”
ll
, long long int unsigned long long int (C99)。
:“%lld” “%8llu”
L
, long double 。
:“%Lf” “%10.4Le”
t
, ptrdiff_t ( ) (C99)
:“%td” “%12ti”
z
, size_t (sizeof ) (C99)。
:“%zd” “%12zx”
printf()
-
, , 。 :“%-20s”
+
, ; , 。 :“%+6.2f”
( )
, ( ); , 。+ 。 :“% 6.2f”
#
。 %o , 0 ; %x %X , 0x 0X , ,# , 。 %g %G , 。 :“%#o”、“%#8.0f” “%+#10.3E”
0
, 。 - ( ) 。 :“%010d” “%08.3f”
ANSIC scanf()
%c
%d
%e,%f,%g, %a
(%a C99 )
%E,%F,%G,%A
(%A C99 )
%i
%o
%p
( )
%s
; ,
%u
%x,%X
scanf()
*
。 :“%*d”
digit(s)
; ( ) 。 :“%10s”
hh
signed char unsigned char 。 :“%hhd”“%hhu”
ll
long long unsigned long long (C99)。 :“%lld”“%llu”
h,l L
“%hd” “hi” short int 。
“%ho”“%hx” “%hu” unsigned short int 。
“%ld” “%li” long 。
“%lo”“%lx” “%lu” unsigned long 。
“%le”“%lf” “%lg” double 。 L( l) e、f g long double 。
,d、i、o x int , e、f g float 。
%I64
u,d , 64 .MSVC . %I64u , %I64d.
, %c,%hhu,%hhd , %hu,%hd , %d,%u 8 %lld,%llu . %I64d .
, , !
, , .
:http://www.cnblogs.com/zxpgo/archive/2012/08/10/2632169.html