printf函式詳解

2021-07-24 22:27:48 字數 1872 閱讀 1533

首先直接描述printf函式中的「格式描述串」,它是由一系列的「格式轉換說明符號」組成,格式轉換說明符號的描述形式如下:

%[+][-] 0 m[n][輸出精度]《形式字母》

(1)形式字母:制定輸出格式,如表

d:十進位制整型數

i:十進位制整型數

x:十六進製制整型數

o:八進位制整形數

u:無符號十進位制整形數

c:單個字元

s:字串

e:指數形式的浮點數

f:小數形式的浮點數

g:e 和 f 中比較短的一種

p:顯示變數所在的內在位址

n:它不是向printf()傳遞格式化資訊,而是令printf()把自己已經輸出的字元總數放到相應的整形變數中

舉例:int i;

printf("hello%n",&i);

此時i的值為5.

(2):輸出精度如果形式字母是d,x,o.u,則可以指定如下兩類精度

l:long型輸出精度

h:short型輸出精度

預設時為int型精度

如:long x=123454578;printf("%d",x);

如果形式字母為e,f,g的時候,則指定l的 時候為double精度,不指定為float精度;

(3):m[.n]指定輸出長度,如果輸出的是例項,則m表示該項輸出占用字元位置的總長度,n表示小數部分的字元長度,如float x=4.56;printf("%7.4f",x);

(4)0:指定不被使用的空位置填寫0,入股不指定使用0,則不使用的位置為空白.該項僅僅對數值輸出時才可以指定,對字串輸出不用指定.例如int x=234;printf("%05d",x);//00234printf("%5d",x);//**234

(5)[+][-]:指定輸出位置,如果指定+或者預設時為右對齊,如果為"-"的時候為左對齊;

1、d格式符:按十進位制格式輸出。

%d

輸出數字長度為變數數值的實際長度

%mdm指定輸出資料的寬度。當資料本身的實際寬度小於m時,則資料左端補空格;若大於m,則按資料的實際位數輸出。

%ld,%mld

l(小寫字母l)表示輸出「長整型」資料

%0md,%0mld

0(數字0)表示位數不足m時補0

注:%後面的m(位數控制)、0(位數不足補0)對於其他格式符也適用。

2、s格式符:用來輸出乙個字串。

%s

用來輸出乙個字串,不含雙引號. 例:printf("%s","china");

%msm指定寬度(字串長度小於m時左補空格,大於時按實際寬度輸出)

%-ms

左對齊,不足m時右補空格

%m.ns

輸出佔m列,只取字串中左端n個字元.這n各字元輸出在m列的右側,左補空格.

%-m.ns

同上,右補空格

3、f格式符:按實數格式輸出。

%f

整數部分全部顯示出來,小數部分顯示6位.但並不是顯示的所有數字都是有效數字

%m.nf

指定資料的寬度共為m列,其中有n位小數.如果數值長度小於m,則左側補空格。

%-m.nf

與%m.f類似,只是應在右側補空格

4、e格式符:以指數形式輸出實數。

%e

按規範化指數形式輸出實數,系統自動給出6位小數,指數部分佔5位

%m.ne

與前面的敘述相同

%-m.ne

與前面的敘述相同

printf函式詳解

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

printf函式詳解

printf 函式 作用 向終端輸出若干個任意型別的資料 putchar 只能輸出字元,而且只能是乙個字元,而printf可以輸出多個資料,且為任意型別 一 printf 的一般格式 printf 格式控制,輸出列表 例 int i 3 double f 4.56 printf i d,f f n ...

printf函式詳解

首先直接描述printf函式中的 格式描述串 它是由一系列的 格式轉換說明符號 組成,格式轉換說明符號的描述形式如下 0 m n 輸出精度 形式字母 1 形式字母 制定輸出格式,如表 d 十進位制整型數 i 十進位制整型數 x 十六進製制整型數 o 八進位制整形數 u 無符號十進位制整形數 c 單個...