C語言萌新如何使用printf函數(shù)?-創(chuàng)新互聯(lián)

🐎作者的話
如果你搜索輸入輸出函數(shù),那么你會看到輸入輸出流、Turbo標(biāo)準(zhǔn)庫、標(biāo)準(zhǔn)輸出端、stdout什么什么亂七八糟的,作為一個萌新,哪懂這些?
本文介紹萌新在前期的學(xué)習(xí)中,常用的輸入輸出函數(shù)及其功能~

成都創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機(jī)托管價格性價比高,為金融證券行業(yè)雅安服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

跳躍式目錄
    • printf介紹
    • 寬度介紹
    • 精度介紹
    • 標(biāo)識介紹
      • 減號
      • 加號
      • 井號
      • 數(shù)字0
    • printf的返回值
    • 打印練習(xí)


printf介紹

函數(shù)原型: int printf(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4,參數(shù)~,參數(shù)n)
這就是對于我們萌新來說的函數(shù)原型,有許許多多的參數(shù),返回值是int類型。

參數(shù)1: 參數(shù)1是一個字符串,printf會打印這個字符串,你可以直接用雙引號引著放進(jìn)去,也可以存在一個字符數(shù)組里,然后把數(shù)組的首地址放進(jìn)去,像這樣:

int main()
{printf("太陽出來我曬太陽!!!");

	char str[] = "月亮出來我曬月亮嘍~";
	printf(str);

	return 0;
}

運(yùn)行效果圖:
在這里插入圖片描述
可以看到,兩個字符串都被打印了。

但是,我們可能要打印我們自己也不知道是多少的變量,這要怎么辦呢?

這時候,就需要在參數(shù)1的str中加入一些控制符,即"%"加一個或兩個字母,在str中每多了一個"%"加字母的組合,后面就要多一個參數(shù),至于這個字母,根據(jù)輸出變量的類型不同,字母也會不同。

常見字母請看以下表格:

%字母對應(yīng)變量類型
%dsigned int
%uunsigned int
%o八進(jìn)制unsigned int
%x(%X)十六進(jìn)制unsigned int
%cchar
%sstring(字符串)
%p地址(指針)
%ffloat
%lfdouble
%e(%E)以指數(shù)表示的浮點型

注意: 不是說某種類型只能用某種控制符輸出,而且會把你一會放在后面的參數(shù),當(dāng)成這種控制符對應(yīng)的類型輸出。

比如說: 你用%u輸出了一個signed型的數(shù),那么計算機(jī)在讀取這個數(shù)時,會把它當(dāng)成unsigned來讀取。

為了應(yīng)對各種不同的情況,在"%"和字母之間,會選擇性地加入三個參數(shù),這三個參數(shù)分別叫做標(biāo)識、寬度、.精度。

其中,標(biāo)識必須緊挨在"%"的右邊,寬度緊挨在標(biāo)識的右邊,.精度在寬度和字母的中間(精度前面有一個小小的點,這不是博主手誤哦,真正存在的),像這樣:

int main()
{printf("%標(biāo)識寬度.精度d" );
	return 0;
}
寬度介紹
  • 寬度可以是一個數(shù),也可以是一個星號"*"。
  • 如果是一個數(shù),假設(shè)是5,那么就代表接下來輸出的這個數(shù)的寬度至少有5,像這樣:
int main()
{int a = 12;
	printf("%5d",a );
	return 0;
}

效果圖:
在這里插入圖片描述
可以看到,被灰色框起來的,就是寬度為5。

那么星號,就是為了應(yīng)對不知道該輸出多寬的數(shù)據(jù),以一個參數(shù)變量當(dāng)作數(shù)據(jù)的寬度,如果寫了星號,在后面加入變量時要多一個,而且必須寫在第一位,像這樣:

int main()
{int a = 12;
	printf("%*d",5,a );
	printf("%*d", 10, a);
	return 0;
}

效果圖:
在這里插入圖片描述

精度介紹
  • 精度要緊挨在字母的左邊,而且精度的左邊還要加上一個點。

  • 在這個點的右邊,你可以寫一個數(shù)字或者一個星號,沒錯,和寬度一樣。

  • 顧名思義,是用來控制輸出數(shù)據(jù)的精度的,只是對于不同的控制符,有不同的效果。
    PS:剛才說過,控制符就是一個%號加上一或兩個字母,不要忘了哦。

詳細(xì)效果:
1,對于%d(signed int)、%u(unsigned int)、%o(八進(jìn)制unsigned int)、%x(十六進(jìn)制unsigned int),這四個來說,是表示數(shù)據(jù)輸出的最小位數(shù),像這樣:

int main()
{int a = 12;
	printf("%.*d", 4, a);
	return 0;
}

效果圖:

在這里插入圖片描述
因為精度是4,所以至少輸出四位,不足則前導(dǎo)0補(bǔ)充。

精度不會縮小一個整數(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;
}

效果圖:
在這里插入圖片描述

標(biāo)識介紹
  • 接下來我們介紹最復(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,但一個向左對齊,一個向右對齊。

加號

寫上加號,即使是正數(shù),也會顯示一個"+",像這樣:

int main()
{int a = 42;
	printf("%+d",a);
	return 0;
}

效果圖:
在這里插入圖片描述
如果不寫這個加號,只有負(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ù)字0和寬度配合使用,它可以讓數(shù)據(jù)的前面不再補(bǔ)充空格,反而補(bǔ)充0,像這樣:

int main()
{int a = 555;
	printf("%10d", a);
	printf("\n");
	printf("%010d", a);

	return 0;
}

效果圖:
在這里插入圖片描述
在寬度前面多加一個0,就能讓它補(bǔ)充0了。

printf的返回值

前面我們說到,printf函數(shù)的返回值是一個int類型的數(shù),這個數(shù)是printf函數(shù)打印出來的字符數(shù),如果沒能成功打印,就返回一個負(fù)數(shù),像這樣:

int main()
{int a = 1234;
	int tmp = printf("%010d", a);

	printf("\n");
	printf("%d", tmp);
	return 0;
}

效果圖:
在這里插入圖片描述
可以看到,我們打印了十個字符,那么它的返回值就是10。

打印練習(xí)

以下五個練習(xí),你能寫出打印內(nèi)容嗎?

  1. int a=15; printf("%#x", a);
  2. int a=4; printf("%10.*d", a, a);
  3. int a=4; printf("%u",a);
  4. int a = 6; printf("%-*d",a,a);
  5. 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ù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章題目:C語言萌新如何使用printf函數(shù)?-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司