c格式化輸出

2021-03-04 09:44:40 字數 1835 閱讀 7972

一、printf()函式

printf()函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。在編寫程式時經常會用到此函式。printf()函式的呼叫格式為:

printf("《格式化字串》", 《參量表》);

其中格式化字串包括兩部分內容:一部分是正常字元, 這些字元將按原樣輸出, 另一部分是格式化規定字元,以"%"開始,後跟乙個或幾個規定字元用來確定輸出內容格式。

參量表是需要輸出的一系列引數,其個數必須與格式化字串所說明的輸出引數個數一樣多,各引數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

二、 格式化規定符

turbo c2.0提供的格式化規定符如下:

符號作用

%d 十進位制有符號整數

%u 十進位制無符號整數

%f 浮點數

%s 字串

%c 單個字元

%p 指標的值

%e 指數形式的浮點數

%x, %x 無符號以十六進製制表示的整數

%0 無符號以八進位制表示的整數

%g 自動選擇合適的表示法

可以在"%"和字母之間插進數字表示最大場寬。

三、規定符說明

說明1:對於%d

(1)%md: 指定輸出的寬度。資料位數小於m,左端補空格;大於m,按實際位數輸出。比如說%3d 表示輸出3位整型數,不夠3位右對齊。

a=123;b=12345;

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

輸出結果為:_123,12345

若想在輸出值前加一些0, 就應在場寬項前加個0。例如%04d 表示在輸出乙個小於4位的數值時,將在前面補0使其總寬度為4位。

(2)%ld: 輸出長整型資料。比如下面的就不能用%d。

long a=123456;

printf("%ld",a);

printf("%9ld",a); 輸出結果為:___123456

(3)%-md:可以控制輸出左對齊,即在"%"和字母之間加入乙個"-" 號可,沒有說明則右對齊。

比如:%-7d 表示輸出7位整數左對齊

說明2:對於%f

(1)%m.nf:表示最大場寬m,小數字為n位,整數字則為m-n-1位,夠m位右對齊。

比如:%9.2f 表示輸出場寬為9的浮點數, 其中小數字為2,整數字為6,小數點佔一位,不夠9位右對齊。

(2)%-m.nf可以控制輸出左對齊。

(3)%lf 表示輸出double浮點數。

說明3:對於%s,%e同樣道理

%-10s:表示輸出10個字元左對齊,沒有說明則右對齊。

%8s:表示輸出8個字元的字串,不夠8個字元右對齊。

%6.9s:表示顯示乙個長度不小於6且不大於9的字串。若大於9,則第9個字元以後的內容將被刪除。

說明4:其它注意:

(1)超過說明的場寬

如果字串的長度或整型數字數超過說明的場寬,將按其實際長度輸出。對浮點數,若整數部分位數超過了說明的整數字寬度,將按實際整數字輸出。若小數部分位數超過了說明的小數字寬度, 則按說明的寬度以四捨五入輸出。

(2)浮點數表示字元或整型量的輸出格式,如%6.9s 和%6.9d

如果用浮點數表示字元或整型量的輸出格式,小數點後的數字代表最大寬度,小數點前的數字代表最小寬度。若大於最大寬度,則最大寬度以後的內容將被刪除。

比如: %6.9s 表示顯示乙個長度不小於6且不大於9的字串。若大於9,則第9個字元以後的內容將被刪除。

四、一些特殊字元

字元作用

\n 換行

\f 清屏並換頁

\r 回車

\t tab符

\xhh 表示乙個ascii碼用16進表示,

其中hh是1到2個16進製制數

134C格式化輸出,C輸出格式控制

在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進製制或八進位制形式輸出乙個整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是我們已經介紹過的使用控制符的方法,第2種是使用流物件的有關成員函式。分別敘述...

格式化輸出

格式化輸出 printf函式 輸出函式 printf將內部數值轉換為字元的形式。前面的有關章節中已經使用過該函式。下面只講述該函式最典型的用法,附錄b中給出了該函式完整的描述。int printf char format,arg1,arg2,函式printf 在輸出格式format 的控制下,將其引...

c格式化字串

格式化字串 以c 的名義 zt 2009 12 22 10 59 從第一堂c語言課上的那個printf開始,格式化字串就成了我的夢魘。此後我還在很多地方遇到過它們 fprintf,sscanf以及cstring的format成員函式 除了能記住 s string的縮寫 代表字串,d decimal的...