C語言基礎之格式化的輸入輸出

2021-10-09 14:34:50 字數 3468 閱讀 1625

格式化的輸入輸出

一、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,顯示...