printf 輸出格式設定

2021-07-24 21:03:41 字數 2984 閱讀 7240

摘要:在使用linux終端命令的時候,我們可以看到像more命令,它的顯示方式與一般的字串不同,是用了反顯。同樣,linux c下printf還有很多其他不常見的格式化輸出形式。本文主要為你盤點這些形式。

/*linux下gcc測試可用*/

printf("\033[47;31mhello world\033[5m");

47是字背景顏色, 31是字型的顏色, hello world是字串. 後面的\033[5m是控制碼.

顏色**:

quote:

字背景顏色範圍: 40--49 字顏色: 30--39

40: 黑 30: 黑

41: 紅 31: 紅

42: 綠 32: 綠

43: 黃 33: 黃

44: 藍 34: 藍

45: 紫 35: 紫

46: 深綠 36: 深綠

47: 白色 37: 白色

ansi控制碼:

quote:

\033[0m 關閉所有屬性 

\033[1m 設定高亮度 

\03[4m 下劃線 

\033[5m 閃爍 

\033[7m 反顯 

\033[8m 消隱 

\033[30m -- \033[37m 設定前景色 

\033[40m -- \033[47m 設定背景色 

\033[na 游標上移n行 

\03[nb 游標下移n行 

\033[nc 游標右移n行 

\033[nd 游標左移n行 

\033[y;xh設定游標位置 

\033[2j 清屏 

\033[k 清除從游標到行尾的內容 

\033[s 儲存游標位置 

\033[u 恢復游標位置 

\033[?25l 隱藏游標 

\33[?25h 顯示游標

這樣, 在某些時候就可以實現動態的輸出.

printf

的格式控制的完整格式:

% - 0 m.n l

或h格式字元

下面對組成格式說明的各項加以說明:

①%:表示格式說明的起始符號,不可缺少。

②-:有-

表示左對齊輸出,如省略表示右對齊輸出。

③0:有0

表示指定空位填0,

如省略表示指定空位不填。

④m.n

:m指域寬,即對應的輸出項在輸出裝置上所佔的字元數。n

指精度。用於說明輸出的實型數的小數字數。為指定n

時,隱含的精度為n=6

位。⑤l

或h:l

對整型指long

型,對實型指double

型。h用於將整型的格式字元修正為short

型。---------------------------------------

格式字元

格式字元用以指定輸出項的資料型別和輸出格式。

①d格式:用來輸出十進位制整數。有以下幾種用法:

%d:按整型資料的實際長度輸出。

%md:m

為指定的輸出欄位的寬度。如果資料的位數小於m

,則左端補以空格,若大於m

,則按實際位數輸出。

%ld:輸出長整型資料。

②o格式:以無符號八進位制形式輸出整數。對長整型可以用"%lo"

格式輸出。同樣也可以指定字段寬度用「%mo」

格式輸出。

例:main()

執行結果:-1,177777

程式解析:-1

在記憶體單元中(以補碼形式存放)為(1111111111111111)2

,轉換為八進位制數為(177777)8。③x

格式:以無符號十六進製制形式輸出整數。對長整型可以用"%lx"

格式輸出。同樣也可以指定字段寬度用"%mx"

格式輸出。

④u格式:以無符號十進位制形式輸出整數。對長整型可以用"%lu"

格式輸出。同樣也可以指定字段寬度用「%mu」

格式輸出。

⑤c格式:輸出乙個字元。

⑥s格式:用來輸出乙個串。有幾中用法

%s:例如:printf("%s","china")

輸出"china"

字串(不包括雙引號)。

%ms:輸出的字串佔m

列,如字串本身長度大於m

,則突破獲m

的限制,

將字串全部輸出。若串長小於m

,則左補空格。

%-ms

:如果串長小於m

,則在m

列範圍內,字串向左靠,右補空格。

%m.ns

:輸出佔m

列,但只取字串中左端n

個字元。這n

個字元輸出在m

列的右側,左補空格。

%-m.ns

:其中m

、n含義同上,n

個字元輸出在m

列範圍的左側,右補空格。如果n>m

,則自動取n

值,即保證n

個字元正常輸出。

⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:

%f:不指定寬度,整數部分全部輸出並輸出6

位小數。

%m.nf

:輸出共佔m

列,其中有n

位小數,如數值寬度小於m

左端補空格。

%-m.nf

:輸出共佔n

列,其中有n

位小數,如數值寬度小於m

右端補空格。

⑧e格式:以指數形式輸出實數。可用以下形式:

%e:數字部分(又稱尾數)輸出6

位小數,指數部分佔5

位或4位。

%m.ne

和%-m.ne

:m、n

和」-」

字元含義與前相同。此處n

指資料的數字部分的小數字數,m

表示整個輸出資料所佔的寬度。

⑨g格式:自動選f

格式或e

格式中較短的一種輸出,且不輸出無意義的零。

printf輸出格式

轉換說明及作為結果的列印輸出 a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 d 有符號十進位制整數 e 浮點數 e 記數法 e 浮點數 記數法 f 浮點數 十進位制記數法 g 根據數值不同自動選擇 f或 e g 根據數值不同自動選擇 f或 e.i 有符號...

printf輸出格式

printf 格式化字串 格式化整型數值 格式化浮點值 printf 格式轉換的一般形式如下 flags width prec type 以中括號括起來的引數為選擇性引數,而 與type則是必要的。底下先介紹type的幾種形式 整數 d 整數的引數會被轉成一有符號的十進位制數字 u 整數的引數會被轉...

printf 輸出格式

printf函式稱為格式輸出函式,其關鍵字最末乙個字母f即為 格式 format 之意。其功能是按使用者指定的格式,把指定的資料顯示到顯示器螢幕上。printf函式呼叫的一般形式 printf函式是乙個標準庫函式,它的函式原型在標頭檔案 stdio.h 中。但作為乙個特例,不要求在使用 printf...