天天看點

21、C語言中輸入輸出格式控制(1)

1、C語言中,非零值為真,真用1表示;零值為假,假用0表示。

2、轉義字元參考:

\a

蜂鳴,響鈴 

\b

回退:向後退一格

\f

換頁 

\n

換行

\r

回車,光标到本行行首 

\t

水準制表

\v

垂直制表 

\\

反斜杠

\'

單引号 

\"

雙引号

\?

問号 

\ddd

三位八進制 

\0

空字元(NULL),什麼都不做

\xhh

二位十六進制

說明:

1)\v垂直制表和\f換頁符對螢幕沒有任何影響,但會影響列印機執行響應操作。

2),\n其實應該叫回車換行。換行隻是換一行,不改變光标的橫坐标;回車隻是回到行首,不改變光标的縱坐标。

注:

    文本檔案的行結束符,傳統上(MS)PC用 CRLF,蘋果Mac用CR,unix 用 LF。

    CR -- 回車符,c語言'\r'

    LF -- 換行符, c語言'\n'

    不同計算機上c語言統一規定為:文本檔案的行結束符一律變成一個符号LF,也就是換行符'\n'。“回車和換行符轉換成一個換行符”,對PC(MS OS)而言,文本檔案行結束符CRLF讀入後,丢掉CR,留LF。例如fgets() 讀入一行,行尾隻有LF,沒有CR。

3)\t光标向前移動四格或八格,可以在編譯器裡設定

4)\'在字元裡(即單引号裡)使用。在字元串裡(即雙引号裡)不需要,隻要用 '即可。

3、格式化輸入輸出

1)格式化輸入

printf("格式串" [,表達式1,表達式2,···]);

其中,格式串的字元有兩類:

① 以%開頭引導的格式符,用于控制表達式的輸出格式(有多少個表達式,就有多少個格式符);

② 非格式符:原樣顯示在螢幕上。

(1)字元串常量的輸出

    無表達式,格式串中無格式符,如:

    printf("We are students.\n"); 

(2)格式符的文法

syntax: %[flag][width][.precision][h|l|L]type

a)[h|l|L]type

type字段采用一個英文字母來表達資料類型與格式:   

按十進制有符号整數形式輸出

按十進制有符号整數形式輸出(同d格式)

u

按十進制無符号數形式輸出

o

按八進制無符号數形式輸出

x

按十六進制無符号數形式輸出,輸出時使用小寫字母 (a, b, c, d, e, f)

X

按十六進制無符号數形式輸出,輸出時使用大寫字母(A, B, C, D, E, F)

f

按十進制小數形式輸出浮點數,輸出格式為:[-]ddd.dddddd(預設輸出6位小數)

e

按十進制指數形式輸出浮點數,輸出格式為:[-]d.dddde[+/-]ddd,(e後面是指數)

E

按十進制指數形式輸出浮點數,輸出格式為:[-]d.ddddE[+/-]ddd,(E後面是指數)。

用e和E格式輸出浮點數時,輸出的是科學記數法形式,即小數點前面的整數部分固定為1位整數

g

按十進制形式輸出浮點數,自動選擇f或e格式中,輸出長度小的格式輸出;g格式不輸出無用的0。

G

按十進制形式輸出浮點數,自動選擇f或E格式中,輸出長度小的格式輸出;G格式不輸出無用的0。

c

輸出單個字元

s

輸出字元串

p

輸出void指針,輸出格式是:WIN32程式設計模式,隻有XXXXXXXX一種格式

%

輸出字元%(%用于引導格式控制符,在格式串中輸出%号時,必須采用格式%%)

字首修飾符:

L: 輸出long double類型表達式必加

l: 輸出長整型表達式必加

h: 輸出短整型表達式必加

b)[width]

    width字段用來指定輸出的資料項占用的字元列數,也稱為輸出域寬。預設該字段,輸出寬度按資料的實際位數輸出;如果指定的輸出寬度小于資料的實際位數,則突破域寬的限制,按實際位數輸出;如果指定的域寬大于資料的實際位數,則預設在輸出資料的左邊輸出空格,使輸出的字元數等于列寬,也就是說,輸出的資料在輸出域中自動向右對齊。

width有以下三種情況:

n

一個非負整型常數,指定輸出占用n列寬度。

0n

n為一個整型常數,輸出占用n列,如果實際位數不足n列,資料前面補0,填滿n列

*

輸出域寬來自待輸出表達式前面的一個整型表達式。

printf("%*d", 8+1, -3);

c)[.precesion]

      有以下4種情況:

預設

對于f |e|E格式,表示小數點後輸出6位小數,對于g |G格式,表示最多輸出6位有效數字

.m

m為非負整型常數,對于浮點格式,指定小數點後面輸出m位小數; s格式,表示隻輸出字元串的前面m個字元

.0

對于f |e|E格式,表示不輸出小數點和小數,按整數形式輸出

.*

表示precision來自待輸出表達式前面的一個整型表達式

示例

注意,輸出中任何一個字元都算作一位。

21、C語言中輸入輸出格式控制(1)

d)[flag]

輸出正數時不輸出正号;域寬大于資料實際位數時,域中左邊補空格,資料靠右對齊;

+

輸出正數時要輸出正号;

-

域寬大于資料實際位數時,域中右邊補空格,資料靠左對齊。

#

用于x |X格式:輸出0x(格式x)或0X(格式X)。

參考

[1] 進一步閱讀

<a href="http://blog.163.com/zhoumhan_0351/blog/static/39954227200972291615439/">http://blog.163.com/zhoumhan_0351/blog/static/39954227200972291615439/</a>

繼續閱讀