格式描述串

來源:互聯網
上載者:User

"格式描述串"是由一系列的"格式轉換說明符號"組成,格式轉換說明符號的描述形式如下:

 

              % [+][-] 0 m[.n] [輸出精度] <形式字母>

 

%c 字元 

%d 十進位整數

%e 浮點數,指數e的形式

%s 字串 %E 浮點數,指數E的形式

%u 無符號十進位整數

%f 浮點數,小數點形式

%g 輸出%f與%e較短者

%o 無符號八進位整數

%G 輸出%F與%E較短者

%x 無符號十六進位整數,以0~f表示

%X 無符號十六進位整數,以0~F表示

%l 長整型,加在d,o,u,x,X之前,如%ld(注意%l是英文字母l,不是數字1)

 

(1)形式字母:制定輸出格式,如表

         d:十進位整型數

          i:十進位整型數

         x:十六進位整型數

         o:八進位整型數

         u:無符號十進位整型數

         c:單個字元;

         s:字串

         e:指數形式的浮點數

         f:小數形式的浮點數

         g:e和f中比較短的一種

         p:顯示變數所在的記憶體位址

         n:它不是向printf()傳遞格式化資訊,而是令printf()把自己已經輸出的字元總數放到相應變元指 的整形變數中

         %:符號%本身;

 

(2):輸出精度如果形式字母是d,x,o.u,則可以指定如下兩類精度 l:long型輸出精度 h:short型輸出精度 預設時為int型精度 如:long x=123454578;printf("%d",x);

     如果形式字母為e,f,g的時候,則指定l的 時候為double精度,不指定為float精度;

 

(3):m[.n]指定輸出長度,如果輸出的是執行個體,則m表示該項輸出佔用字元位置的總長度,n表示小數部分的字 符長度,如float x=4.56;printf("%7.4f",x);

 

(4)0:指定不被使用的空位置填寫0,入股不指定使用0,則不使用的位置為空白.該項僅僅對樹枝輸出時才可 以指定,對字串輸出不用指定.例如 int x=234; printf("%05d",x);//00234 printf("%5d",x);//**234 (5)[+][-]:指定輸出位置,如果指定+或者預設時為靠右對齊,如果為"-"的時候為靠左對齊;

 

 

 

一、格式符含義

 

1、d格式符:按十進位格式輸出。

%d         輸出數字長度為變數數值的實際長度

%md        輸出m位(不足補空格,大於m位時按實際長度輸出)

%ld,%mld  l(小寫字母L)表示輸出“長整型”資料

%0md,%0mld 0(數字0)表示位元不足m時補0

註:%後面的m(位元控制)、0(位元不足補0)對於其他格式符也適用。    

例:(□表示空格)

int i=123; 

long j=123456; 

printf("%d□5d□05d,□ld□8ld□08ld",i,i,i,j,j,j); 

輸出:123□□□123□00123,□123456□□□123456□00123456 

2、o(字母)格式符:按八進位格式輸出。(不會出現負數格式)

3、x格式符:按十六進位格式輸出。(不會出現負數格式)

4、u格式符:用於輸出unsigned類型資料。

例:main() 

  unsigned int a=65535; 

  int b=-2; 

  printf("a=%d,%o,%x,%u/n",a,a,a,a); 

  printf("a=%d,%o,%x,%u/n",b,b,b,b);

}   

輸出:a=-1,177777,ffff,65535

     b=-2,177776,fffe,65534

5、c格式符:以字元形式輸出。

6、s格式符:以字串格式輸出。

例:printf("%s","CHINA"); 

%ms    m指定寬度(不足時左補空格,大於時按實際寬度輸出)

%-ms   靠左對齊,不足m時右補空格

%m.ns  輸出佔m個字元位置,其中字元數最多n個,左補空格

%-m.ns 同上,右補空格

7、f格式符:按實數格式輸出。

%f       按實數格式輸出,整數部分按實際位元輸出,6位小數 

%m.nf    總位元m(含小數點),其中n位小數 

%-m.nf   同上,靠左對齊 

例:main() 

{ float x, y; 

  x=111111.111; y=222222.222; 

  printf("%f", x+y);  

}   

程式輸出: 333333.328152(實數運算中誤差不可避免) 

例:main() 

{ double x,y; double x2,y2; 

  x=1111111111111.111111111; y=2222222222222.222222222; 

  x2=1111111111111.111; y2=2222222222222.222; 

  printf("%f %f", x+y, x2+y2);       /* 13位整數,9位小數 */   

}   

程式輸出: 3333333333333.333010 3333333333333.333010(相同) 

注意

    從以上兩例可以看出,實數運算中誤差不可避免,double比float精度高。

    float實數(單精確度)的有效位元是7位,double實數(雙精確度)的有效位元是16位,超過有效位元的輸出和輸入均無意義。

例:

main() 

{  float f=123.456; 

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

}   

輸出結果: 

  123.455994□□123.455994□□□□□□123.46□□123.46□□123.46 

8、e格式符:以指數形式輸出實數。%e 輸出13位,其中:1位整數,1位小數點,6位小數,5位指數(含字元e和指數的符號) 

9、g格式符:根據數值大小,自動選擇f或e格式輸出。

 

 

1、%是printf()的格式說明符,若要直接輸出字元%,在格式控制中使用兩個連續的%。

例:printf("%f%%", 1.0/3)     輸出: 0.333333%。

2、通常在有格式字元o和x按八進位和十六進位形式輸出整數時,在數值前不出現0和0x,可在%和格式字元間插入#來實現。

例:printf(“%o,%#o,%x,%#x/n”,10,10,10,10);

輸出:12,012,a,0xa

3、指定輸出寬度的同時指定靠左對齊可在寬度前插入“-”來實現

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/evanever/archive/2008/07/07/2620891.aspx"格式描述串"是由一系列的"格式轉換說明符號"組成,格式轉換說明符號的描述形式如下:

 

              % [+][-] 0 m[.n] [輸出精度] <形式字母>

 

(1)形式字母:制定輸出格式,如表

         d:十進位整型數

          i:十進位整型數

         x:十六進位整型數

         o:八進位整型數

         u:無符號十進位整型數

         c:單個字元;

         s:字串

         e:指數形式的浮點數

         f:小數形式的浮點數

         g:e和f中比較短的一種

         p:顯示變數所在的記憶體位址

         n:它不是向printf()傳遞格式化資訊,而是令printf()把自己已經輸出的字元總數放到相應變元指 的整形變數中

         %:符號%本身;

 

(2):輸出精度如果形式字母是d,x,o.u,則可以指定如下兩類精度 l:long型輸出精度 h:short型輸出精度 預設時為int型精度 如:long x=123454578;printf("%d",x);

     如果形式字母為e,f,g的時候,則指定l的 時候為double精度,不指定為float精度;

 

(3):m[.n]指定輸出長度,如果輸出的是執行個體,則m表示該項輸出佔用字元位置的總長度,n表示小數部分的字 符長度,如float x=4.56;printf("%7.4f",x);

 

(4)0:指定不被使用的空位置填寫0,入股不指定使用0,則不使用的位置為空白.該項僅僅對樹枝輸出時才可 以指定,對字串輸出不用指定.例如 int x=234; printf("%05d",x);//00234 printf("%5d",x);//**234 (5)[+][-]:指定輸出位置,如果指定+或者預設時為靠右對齊,如果為"-"的時候為靠左對齊;

 

 

 

一、格式符含義

 

1、d格式符:按十進位格式輸出。

%d         輸出數字長度為變數數值的實際長度

%md        輸出m位(不足補空格,大於m位時按實際長度輸出)

%ld,%mld  l(小寫字母L)表示輸出“長整型”資料

%0md,%0mld 0(數字0)表示位元不足m時補0

註:%後面的m(位元控制)、0(位元不足補0)對於其他格式符也適用。    

例:(□表示空格)

int i=123; 

long j=123456; 

printf("%d□5d□05d,□ld□8ld□08ld",i,i,i,j,j,j); 

輸出:123□□□123□00123,□123456□□□123456□00123456 

2、o(字母)格式符:按八進位格式輸出。(不會出現負數格式)

3、x格式符:按十六進位格式輸出。(不會出現負數格式)

4、u格式符:用於輸出unsigned類型資料。

例:main() 

  unsigned int a=65535; 

  int b=-2; 

  printf("a=%d,%o,%x,%u/n",a,a,a,a); 

  printf("a=%d,%o,%x,%u/n",b,b,b,b);

}   

輸出:a=-1,177777,ffff,65535

     b=-2,177776,fffe,65534

5、c格式符:以字元形式輸出。

6、s格式符:以字串格式輸出。

例:printf("%s","CHINA"); 

%ms    m指定寬度(不足時左補空格,大於時按實際寬度輸出)

%-ms   靠左對齊,不足m時右補空格

%m.ns  輸出佔m個字元位置,其中字元數最多n個,左補空格

%-m.ns 同上,右補空格

7、f格式符:按實數格式輸出。

%f       按實數格式輸出,整數部分按實際位元輸出,6位小數 

%m.nf    總位元m(含小數點),其中n位小數 

%-m.nf   同上,靠左對齊 

例:main() 

{ float x, y; 

  x=111111.111; y=222222.222; 

  printf("%f", x+y);  

}   

程式輸出: 333333.328152(實數運算中誤差不可避免) 

例:main() 

{ double x,y; double x2,y2; 

  x=1111111111111.111111111; y=2222222222222.222222222; 

  x2=1111111111111.111; y2=2222222222222.222; 

  printf("%f %f", x+y, x2+y2);       /* 13位整數,9位小數 */   

}   

程式輸出: 3333333333333.333010 3333333333333.333010(相同) 

注意

    從以上兩例可以看出,實數運算中誤差不可避免,double比float精度高。

    float實數(單精確度)的有效位元是7位,double實數(雙精確度)的有效位元是16位,超過有效位元的輸出和輸入均無意義。

例:

main() 

{  float f=123.456; 

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

}   

輸出結果: 

  123.455994□□123.455994□□□□□□123.46□□123.46□□123.46 

8、e格式符:以指數形式輸出實數。%e 輸出13位,其中:1位整數,1位小數點,6位小數,5位指數(含字元e和指數的符號) 

9、g格式符:根據數值大小,自動選擇f或e格式輸出。

 

 

1、%是printf()的格式說明符,若要直接輸出字元%,在格式控制中使用兩個連續的%。

例:printf("%f%%", 1.0/3)     輸出: 0.333333%。

2、通常在有格式字元o和x按八進位和十六進位形式輸出整數時,在數值前不出現0和0x,可在%和格式字元間插入#來實現。

例:printf(“%o,%#o,%x,%#x/n”,10,10,10,10);

輸出:12,012,a,0xa

3、指定輸出寬度的同時指定靠左對齊可在寬度前插入“-”來實現

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/evanever/archive/2008/07/07/2620891.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.