格式化的輸入輸出
一、printf()
printf();
%[flags][width][.prec][hil]type
1、flags
flag含義-
左對齊+
在前面放+或-
(space)
正數留空
00填充
(1)在輸出前面新增了-號,那麼格式化的輸出即實現了左對齊:
(2)在輸出前面新增了+號,那麼格式化的輸出的最左端自動新增了正負號:
(3)在輸出前面新增了0,那麼格式化的輸出的最左端自動填充了0:
2、width或prec
width或prec
含義number
最小字元數
*下乙個引數是字元數
.number
小數點後的位數
.*下乙個引數是小數點的位數
(1)
#includeint main(int argc, const char* ar**)
上面的**執行後,輸出的整個字串佔據9位,而小數點後佔據2位,即小數點之前佔據了9 - 2 = 7位!這一點不要弄混淆,.號之前數字的意思並不是小數點之前的位數
printf("%*d\n", 9, 123); //引數9被填入*號內,用於格式控制,輸出後的字串佔據的空間為9個字元
printf("%*.*d\n", 9, 2, 123); //引數9, 2被分別填入兩個*號內,用於格式控制,輸出後的字串佔據的空間為9個字元,小數點後佔據的空間為2個字元
3、hil
型別修飾
含義hh
單個位元組
hshort
llong
lllong long
llong double
#includeint main(int argc, char const* ar**)
我們在printf()中期望輸出的是單個位元組,傳入的引數是12345,然而執行後的結果如下圖所示:
我們利用計算器來計算一下int型的12345在16進製制下為:0x3039,根據我們輸出的實際上為57,0x39 = 57,這說明只輸出了int型的12345二進位制中最低1位元組,即0x39
4、type
type
用於type
用於i或d
intg
float
uunsigned int
gfloat
o八進位制
a或a十六進製制浮點
x十六進製制
cchar
x字母大寫的十六進製制
s字串f或ffloat, 6p指標
e或e指數
n讀入/寫出的個數
(1)%n
#includeint main(int argc, char const* ar**)
%n與其他type有很大的不同,其作用是printf()函式將已經輸出的字元計數,賦值給對應引數,這個引數必須是int*型別的指標,執行完上述程式後,int num的值就被修改為8
二、scanf()
scanf();
%[flag]type
1、flag
flag
含義flag含義*
跳過llong, double
數字最大字元數
lllong long
hhchar
llong double
hshort
#includeint main(int argc, char const* ar**)
這樣在scanf()讀取內容時會跳過在shell中第乙個輸入的內容:
用於type用於d
ints
字串(單詞)
i整數,可能為十六進製制或八進位制
[...]
所允許的字元
uunsigned intp指標
o八進位制
x十六進製制
a, e, f, g
float
cchar
(1)%i的靈活性
#includeint main(int argc, char const* ar**)
① 當我們在shell中輸入乙個十六進製制的數字,如:0x12,輸出結果為18:
② 當我們在shell中輸入乙個八進位制的數字,如:012,輸出結果為10:
printf()和scanf()的返回值
◆ 讀入的專案數
◆ 輸出的字元數
◆ 在要求嚴格的程式中,應該判斷每次呼叫scanf()或printf()的返回值,從而了解程式執行中是否存在問題
【例】
#includeint main(int argc, char const* ar**)
執行的結果如上圖所示,scanf()的返回值是1,因為讀入了1個專案——#而printf()的返回值為4,因為總計輸出了4個字元
C語言格式化輸入輸出
原創 2015年03月20日 20 08 32 printf 格式字串的一般形式 標誌 輸出最小寬度 精度 長度 型別 其中方括號 中的項為可選項。各項意義 1 型別 型別字元用以表示輸出資料的型別,其格式符和意義如下表所示 格式字元 意義d 以十進位制形式輸出帶符號整數 正數不輸出符號 o以八進位...
C語言 格式化輸入輸出
格式說明由 和格式字元組成,由 d f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由 字元開始的。不同型別的資料用不同的格式字元。格式字元有d,o,x,u,c,s,f,e,g等 如 d整型輸出,ld長整型輸出,o以八進位制數形式輸出整數,x以十六進製制數形式輸出整數,u以十進位制數輸...
C語言格式化輸入輸出
本文主要介紹一下c語言中printf和scanf兩個函式。printf函式被設計用來顯示格式串 format string 的內容,並且在該串中的指定位置插入可能的值。呼叫printf函式時必須提供格式串,格式串後面的引數是需要在顯示時插入到該串中的值 printf 格式串,表示式1,表示式2,顯示...