printf 函數(shù)筆記

函數(shù)聲明

int printf (const char*, ...);

說(shuō)明

<返回值> printf ("<格式化字符串>", <參數(shù)表>);

返回值

printf 返回輸出的字符長(zhǎng)度,輸出失敗則返回 -1项玛。

printf("Hello World");

返回值為 12

格式化字符串

格式

%[flags][width][.precision]specifier

說(shuō)明

每個(gè)%分別對(duì)應(yīng)控制參數(shù)表中每個(gè)變量的輸出格式(%%除外,當(dāng) * 代替width或precision時(shí)亦對(duì)應(yīng)一個(gè)變量)辽慕;
除%引導(dǎo)的部分外神汹,可加入任意希望打印的字符。

specifier 參數(shù)類(lèi)型 輸出格式
d char型榨汤,int型 十進(jìn)制整數(shù),當(dāng)變量存儲(chǔ)字符時(shí)輸出其十進(jìn)制內(nèi)碼
o int型怎茫,unsigned int型 八進(jìn)制整數(shù)
x,X int型收壕,unsigned int型 十六進(jìn)制整數(shù)
u unsigned int型 十進(jìn)制整數(shù)
lld long long型 十進(jìn)制整數(shù)
llu unsigned long long型 十進(jìn)制整數(shù)
c char型,int型 單個(gè)字符
s char *型 字符串轨蛤,順序打印字符數(shù)組中的字符直到遇到'\0'或已打印了由精度指定的字符數(shù)
f float型 十進(jìn)制實(shí)數(shù)蜜宪,默認(rèn)保留6位小數(shù)(遵循四舍五入原則)
lf double型 十進(jìn)制實(shí)數(shù),默認(rèn)保留6位小數(shù)(遵循四舍五入原則)
e,E float型祥山,double型 用指數(shù)形式輸出十進(jìn)制實(shí)數(shù)圃验,默認(rèn)保留6位小數(shù)(遵循四舍五入原則)
g,G float型,double型 十進(jìn)制小數(shù)缝呕,省略無(wú)意義的0(遵循四舍五入原則)
p void *型 輸出指針地址
% 不轉(zhuǎn)換參數(shù) 輸出一個(gè)%
flags 輸出格式
- 在給定的字段長(zhǎng)度內(nèi)左對(duì)齊澳窑,默認(rèn)為右對(duì)齊
+ 強(qiáng)制在結(jié)果之前顯示正號(hào)或負(fù)號(hào),默認(rèn)不顯示正號(hào)
空格 在給定的字段長(zhǎng)度內(nèi)供常,若沒(méi)有寫(xiě)入任何符號(hào)摊聋,則插入一個(gè)空格
0 在給定的字段長(zhǎng)度內(nèi),若沒(méi)有寫(xiě)入任何符號(hào)话侧,則插入一個(gè)0
# 與 o栗精、x 或 X 一起使用時(shí),非零值前面會(huì)分別顯示 0瞻鹏、0x 或 0X;
與 e鹿寨、E新博、f 或 lf 一起使用時(shí),會(huì)強(qiáng)制輸出包含一個(gè)小數(shù)點(diǎn)脚草,即使后邊沒(méi)有數(shù)字赫悄;
與 g 或 G 一起使用時(shí),尾部的零不會(huì)被移除
width/.precision 輸出格式
(number) width和.precision分別指定輸出所占字符數(shù)和輸出實(shí)數(shù)的精度
* 未指定精度,輸出精度取決于參數(shù)表中相應(yīng)的變量的值

注意當(dāng)輸出實(shí)際長(zhǎng)度即使不加空格也大于width規(guī)定的長(zhǎng)度埂淮,width將會(huì)被忽略姑隅。

參數(shù)表

參數(shù)表中形參的數(shù)量和類(lèi)型與格式化字符串相適應(yīng),否則輸出可能發(fā)生異常倔撞;
每個(gè)形參用逗號(hào)( , )隔開(kāi)讲仰。

示例

#include<stdio.h>
int main()
{
    double double1=3.141592654, double2=3.14;
    int integer=15;
    int b=15, c=8;
    printf("%d<\n十進(jìn)制整數(shù)\n", integer);
    printf("%x<\n十六進(jìn)制整數(shù)\n", integer);
    printf("%5d<\n指定占5個(gè)字符十進(jìn)制數(shù)\n", integer);
    printf("%*d<\n由變量c指定所占長(zhǎng)度十進(jìn)制數(shù)\n", c, integer);
    printf("%05d<\n位數(shù)不足補(bǔ)0\n", integer);
    printf("%#x<\n十六進(jìn)制帶0x\n\n", integer);
    
    printf("%lf<\n實(shí)數(shù)\n", double2);
    printf("%g<\n實(shí)數(shù)省略無(wú)意義的0\n", double2);
    printf("%#.0lf<\n只保留整數(shù)和小數(shù)點(diǎn)實(shí)數(shù)\n", double1);
    printf("%15.5lf<\n指定占15個(gè)字符保留5位小數(shù)實(shí)數(shù)\n", double1);
    printf("%*.*lf<\n指由變量b指定所占長(zhǎng)度,變量c指定保留小數(shù)位數(shù)\n\n", b, c, double1);

    printf("%-5d<\n占5位左對(duì)齊\n", integer);
    printf("%+d<\n輸出正號(hào)\n", integer);
    printf("%-+lf15.5<\n輸出正號(hào)左對(duì)齊痪蝇,不足補(bǔ)0\n", double1);

    return 0;
}

輸出

15<
十進(jìn)制整數(shù)
f<
十六進(jìn)制整數(shù)
   15<
指定占5個(gè)字符十進(jìn)制數(shù)
      15<
由變量c指定所占長(zhǎng)度十進(jìn)制數(shù)
00015<
位數(shù)不足補(bǔ)0
0xf<
十六進(jìn)制帶0x

3.140000<
實(shí)數(shù)
3.14<
實(shí)數(shù)省略無(wú)意義的0
3.<
只保留整數(shù)和小數(shù)點(diǎn)實(shí)數(shù)
        3.14159<
指定占15個(gè)字符保留5位小數(shù)實(shí)數(shù)
     3.14159265<
指由變量b指定所占長(zhǎng)度鄙陡,變量c指定保留小數(shù)位數(shù)

15   
占5位左對(duì)齊
+15<
輸出正號(hào)
+3.14159315.5<
輸出正號(hào)左對(duì)齊,不足補(bǔ)0

注意%3.2lf并不是指整數(shù)部分三位小數(shù)部分二位躏啰,而是指數(shù)字長(zhǎng)度為3趁矾,小數(shù)部分長(zhǎng)度為2;

而小數(shù)點(diǎn)也需要占一位给僵,故輸出會(huì)出現(xiàn)問(wèn)題毫捣。

#include<stdio.h>

int main()
{
    double a=13.1415;
    printf("%3.2lf\n", a);
}
13.14

Process returned 0 (0x0)   execution time : 0.352 s
Press any key to continue.

事實(shí)證明3被忽略,而這也恰好符合預(yù)期帝际。

by sdust weilinfox

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載培漏,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末胡本,一起剝皮案震驚了整個(gè)濱河市牌柄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侧甫,老刑警劉巖珊佣,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異披粟,居然都是意外死亡咒锻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)守屉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惑艇,“玉大人,你說(shuō)我怎么就攤上這事拇泛”醢停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵俺叭,是天一觀的道長(zhǎng)恭取。 經(jīng)常有香客問(wèn)我,道長(zhǎng)熄守,這世上最難降的妖魔是什么蜈垮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任耗跛,我火速辦了婚禮,結(jié)果婚禮上攒发,老公的妹妹穿的比我還像新娘调塌。我一直安慰自己,他們只是感情好惠猿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布羔砾。 她就那樣靜靜地躺著,像睡著了一般紊扬。 火紅的嫁衣襯著肌膚如雪蜒茄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天餐屎,我揣著相機(jī)與錄音檀葛,去河邊找鬼。 笑死腹缩,一個(gè)胖子當(dāng)著我的面吹牛屿聋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藏鹊,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼润讥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了盘寡?” 一聲冷哼從身側(cè)響起楚殿,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竿痰,沒(méi)想到半個(gè)月后脆粥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡影涉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年变隔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟹倾。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匣缘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲜棠,到底是詐尸還是另有隱情肌厨,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布岔留,位于F島的核電站夏哭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏献联。R本人自食惡果不足惜竖配,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望里逆。 院中可真熱鬧进胯,春花似錦、人聲如沸原押。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诸衔。三九已至盯漂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笨农,已是汗流浹背就缆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谒亦,地道東北人竭宰。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像份招,于是被迫代替她去往敵國(guó)和親切揭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容