フォーマット変換説明子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