🐎作者的話
如果你搜索輸入輸出函數(shù),那么你會看到輸入輸出流、Turbo標(biāo)準(zhǔn)庫、標(biāo)準(zhǔn)輸出端、stdout什么什么亂七八糟的,作為一個(gè)萌新,哪懂這些?
本文介紹萌新在前期的學(xué)習(xí)中,常用的輸入輸出函數(shù)及其功能~
函數(shù)原型: int printf(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4,參數(shù)~,參數(shù)n)
這就是對于我們萌新來說的函數(shù)原型,有許許多多的參數(shù),返回值是int類型。
參數(shù)1: 參數(shù)1是一個(gè)字符串,printf會打印這個(gè)字符串,你可以直接用雙引號引著放進(jìn)去,也可以存在一個(gè)字符數(shù)組里,然后把數(shù)組的首地址放進(jìn)去,像這樣:
int main()
{printf("太陽出來我曬太陽!!!");
char str[] = "月亮出來我曬月亮嘍~";
printf(str);
return 0;
}
運(yùn)行效果圖:
可以看到,兩個(gè)字符串都被打印了。
但是,我們可能要打印我們自己也不知道是多少的變量,這要怎么辦呢?
這時(shí)候,就需要在參數(shù)1的str中加入一些控制符,即"%"加一個(gè)或兩個(gè)字母,在str中每多了一個(gè)"%"加字母的組合,后面就要多一個(gè)參數(shù),至于這個(gè)字母,根據(jù)輸出變量的類型不同,字母也會不同。
常見字母請看以下表格:
%字母 | 對應(yīng)變量類型 |
---|---|
%d | signed int |
%u | unsigned int |
%o | 八進(jìn)制unsigned int |
%x(%X) | 十六進(jìn)制unsigned int |
%c | char |
%s | string(字符串) |
%p | 地址(指針) |
%f | float |
%lf | double |
%e(%E) | 以指數(shù)表示的浮點(diǎn)型 |
注意: 不是說某種類型只能用某種控制符輸出,而且會把你一會放在后面的參數(shù),當(dāng)成這種控制符對應(yīng)的類型輸出。
比如說: 你用%u輸出了一個(gè)signed型的數(shù),那么計(jì)算機(jī)在讀取這個(gè)數(shù)時(shí),會把它當(dāng)成unsigned來讀取。
為了應(yīng)對各種不同的情況,在"%"和字母之間,會選擇性地加入三個(gè)參數(shù),這三個(gè)參數(shù)分別叫做標(biāo)識、寬度、.精度。
其中,標(biāo)識必須緊挨在"%"的右邊,寬度緊挨在標(biāo)識的右邊,.精度在寬度和字母的中間(精度前面有一個(gè)小小的點(diǎn),這不是博主手誤哦,真正存在的),像這樣:
int main()
{printf("%標(biāo)識寬度.精度d" );
return 0;
}
寬度介紹int main()
{int a = 12;
printf("%5d",a );
return 0;
}
效果圖:
可以看到,被灰色框起來的,就是寬度為5。
那么星號,就是為了應(yīng)對不知道該輸出多寬的數(shù)據(jù),以一個(gè)參數(shù)變量當(dāng)作數(shù)據(jù)的寬度,如果寫了星號,在后面加入變量時(shí)要多一個(gè),而且必須寫在第一位,像這樣:
int main()
{int a = 12;
printf("%*d",5,a );
printf("%*d", 10, a);
return 0;
}
效果圖:
精度要緊挨在字母的左邊,而且精度的左邊還要加上一個(gè)點(diǎn)。
在這個(gè)點(diǎn)的右邊,你可以寫一個(gè)數(shù)字或者一個(gè)星號,沒錯(cuò),和寬度一樣。
顧名思義,是用來控制輸出數(shù)據(jù)的精度的,只是對于不同的控制符,有不同的效果。
PS:剛才說過,控制符就是一個(gè)%號加上一或兩個(gè)字母,不要忘了哦。
詳細(xì)效果:
1,對于%d(signed int)、%u(unsigned int)、%o(八進(jìn)制unsigned int)、%x(十六進(jìn)制unsigned int),這四個(gè)來說,是表示數(shù)據(jù)輸出的最小位數(shù),像這樣:
int main()
{int a = 12;
printf("%.*d", 4, a);
return 0;
}
效果圖:
因?yàn)榫仁?,所以至少輸出四位,不足則前導(dǎo)0補(bǔ)充。
精度不會縮小一個(gè)整數(shù)的輸出,像這樣:
int main()
{int a = 12345;
printf("%.*d", 4, a);
return 0;
}
效果圖:
2,對于%s(string)來說,精度的作用是控制輸出的大字符數(shù),像這樣:
int main()
{char arr[]="123456";
int tmp = printf("%.3s",arr);
return 0;
}
效果圖:
接下來我們介紹最復(fù)雜的標(biāo)識。
標(biāo)識寫在緊挨在%的右邊,可以寫“-”、“+”、“#”、0,即減號,加號,井號,還有數(shù)字0。
和寬度配合使用,表示左對齊,如果不加減號,默認(rèn)右對齊,像這樣:
int main()
{int a = 42;
printf("%10d",a);
printf("%-10d", a);
return 0;
}
打印結(jié)果如下:
可見,兩者寬度都是10,但一個(gè)向左對齊,一個(gè)向右對齊。
寫上加號,即使是正數(shù),也會顯示一個(gè)"+",像這樣:
int main()
{int a = 42;
printf("%+d",a);
return 0;
}
效果圖:
如果不寫這個(gè)加號,只有負(fù)數(shù)會顯示負(fù)號,正數(shù)不顯示加號。
眾所周知(即使是萌新也應(yīng)該知道),八進(jìn)制要前導(dǎo)0,十六進(jìn)制前導(dǎo)0x,二進(jìn)制前導(dǎo)0b,井號的作用就是顯示八進(jìn)制和十六進(jìn)制的前導(dǎo)標(biāo)志,像這樣:
int main()
{int a = 0x00001234;
printf("%#x",a);
printf("\n");
printf("%x", a);
return 0;
}
}
效果圖:
如圖,加了井號的顯示了前導(dǎo)標(biāo)志。
數(shù)字0和寬度配合使用,它可以讓數(shù)據(jù)的前面不再補(bǔ)充空格,反而補(bǔ)充0,像這樣:
int main()
{int a = 555;
printf("%10d", a);
printf("\n");
printf("%010d", a);
return 0;
}
效果圖:
在寬度前面多加一個(gè)0,就能讓它補(bǔ)充0了。
前面我們說到,printf函數(shù)的返回值是一個(gè)int類型的數(shù),這個(gè)數(shù)是printf函數(shù)打印出來的字符數(shù),如果沒能成功打印,就返回一個(gè)負(fù)數(shù),像這樣:
int main()
{int a = 1234;
int tmp = printf("%010d", a);
printf("\n");
printf("%d", tmp);
return 0;
}
效果圖:
可以看到,我們打印了十個(gè)字符,那么它的返回值就是10。
以下五個(gè)練習(xí),你能寫出打印內(nèi)容嗎?
int a=15; printf("%#x", a);
int a=4; printf("%10.*d", a, a);
int a=4; printf("%u",a);
int a = 6; printf("%-*d",a,a);
int a = 8; printf("%+.*d",a,a);
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
文章題目:C語言萌新如何使用printf函數(shù)?-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article34/dpecse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、自適應(yīng)網(wǎng)站、域名注冊、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容