最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言基礎(chǔ)之C語(yǔ)言格式化輸出函數(shù)printf詳解

 更新時(shí)間:2023年03月29日 15:24:12   作者:一抹南傷  
這篇文章主要介紹了C語(yǔ)言格式化輸出函數(shù)printf詳解,printf函數(shù)中用到的格式字符與printf函數(shù)中用到的格式修飾符,感興趣的小伙伴可以借鑒一下

1、printf函數(shù)的一般格式

(由于篇幅較長(zhǎng),內(nèi)容較全,建議收藏)

printf函數(shù)的一般格式為:
printf(格式控制字符串,輸出值參數(shù)表);
如:

printf("f=%f,c=%f\n",f,c);

其中,f=%f,c=%f\n 是格式控制字符串,f,c 是輸出值參數(shù)表。

1)格式控制字符串是用雙引號(hào)括起來(lái)的字符串,包括三類信息:

  1. 格式字符。格式字符由“%”引導(dǎo),如%d、%f等。它的作用是控制輸出字符的格式。
  2. 轉(zhuǎn)義字符。格式控制字符串里的轉(zhuǎn)義字符按照轉(zhuǎn)義后的含義輸出,如上面printf函數(shù)雙引號(hào)內(nèi)的換行符“\n”,即輸出回車(chē)。
  3. 普通字符。普通字符即需要在輸出時(shí)原樣輸出的字符,如上面printf函數(shù)中雙引號(hào)內(nèi)的“f=”和“c= ”部分。

 (2)輸出值參數(shù)表是需要輸出的數(shù)據(jù)項(xiàng)的列表,輸出數(shù)據(jù)項(xiàng)可以是常量、變量或表達(dá)式,輸出值參數(shù)之間用逗號(hào)分隔,其類型應(yīng)與格式字符相匹配。每個(gè)格式字符和輸出值參數(shù)表中的輸出值參數(shù)一一對(duì)應(yīng),沒(méi)有輸出參數(shù)時(shí),格式控制字符串中不再需要格式字符。

2、格式字符

(1)d格式字符

輸出帶符號(hào)的十進(jìn)制整數(shù),正數(shù)的符號(hào)不輸出。
如:

int a = 256,b = -125;
printf("%d\n%d",a,b);

輸出結(jié)果為:

還可以在%和格式字符中間插入格式修飾符,用于指定輸出數(shù)據(jù)的域?qū)挘ㄋ嫉牧袛?shù)),如用“%5d”,指定輸出數(shù)據(jù)占5列,輸出的數(shù)據(jù)在域內(nèi)向右靠齊。如:

int a = 256,b = -125;
printf("%5d\n%5d",a,b);

輸出結(jié)果為:

其中256前面有2個(gè)空格,-125前面有一個(gè)空格。
若要輸出long(長(zhǎng)整型)數(shù)據(jù),則在格式字符d前面加字母l(代表long),即“%ld”。

(2)f格式符

輸出一個(gè)實(shí)數(shù)(包括單精度、雙精度、長(zhǎng)雙精度),以小數(shù)形式輸出,有以下幾種用法:

1)基本型,%f

不指定輸出數(shù)據(jù)的長(zhǎng)度,由系統(tǒng)根據(jù)數(shù)據(jù)的實(shí)際情況決定數(shù)據(jù)所占的列數(shù)。系統(tǒng)處理的方法一般是:實(shí)數(shù)中的整數(shù)部分全部輸出,小數(shù)部分輸出6位。
如:

#include<stdio.h>
int main(){
	double a = 1.0;
	printf("%f\n",a/3);
	return 0;
} 

運(yùn)行結(jié)果:

雖然a是double型,a/3的結(jié)果也是double型,但用 %f格式字符只能輸出6位小數(shù)。

2)指定數(shù)據(jù)寬度和小數(shù)位數(shù)用%m.nf 。

其中,m表示輸出數(shù)據(jù)的寬度,即占m列,n表示小數(shù)點(diǎn)后保留n位小數(shù)。(若不需強(qiáng)調(diào)輸出數(shù)據(jù)寬度,可直接用%.nf)
如:

#include<stdio.h>
int main(){
	double a = 1.0;
	printf("%20.15f\n",a/3);
	return 0;
} 

運(yùn)行結(jié)果為:

其中,在0前面有3個(gè)空格,小數(shù)點(diǎn)后輸出了15位小數(shù)。
注意:一個(gè)double型數(shù)只能保證15位有效數(shù)字的精確度,即使指定小數(shù)位數(shù)為50(如用%.50f),也不能保證輸出的50位都是有效數(shù)值。

3)輸出的數(shù)據(jù)向左對(duì)齊,用%-m.nf。

即在m.n前面加一個(gè)負(fù)號(hào),能夠讓輸出數(shù)據(jù)在域內(nèi)向左靠齊。
如:

#include<stdio.h>
int main(){
	double a = 1.0;
	printf("%-20.15f\n",a/3);
	return 0;
} 

運(yùn)行結(jié)果:

(3)c格式字符

用于輸出一個(gè)字符,如:

#include<stdio.h>
int main(){
	char ch = 'a';
	printf("%c",ch);
	return 0;
} 

輸出結(jié)果:

也可以加格式修飾符指定域?qū)?,如?/p>

#include<stdio.h>
int main(){
	char ch = 'a';
	printf("%5c",ch);
	return 0;
} 

輸出結(jié)果:

(4)s格式符

用于輸出一個(gè)字符串,如:

printf("%s","Hello!");

輸出結(jié)果:

3、使用printf函數(shù)時(shí)應(yīng)注意的問(wèn)題

(1)格式控制字符串中沒(méi)有%引導(dǎo)的格式字符時(shí),不需要輸出值參數(shù)表,直接輸出字符串內(nèi)容,轉(zhuǎn)義字符按照轉(zhuǎn)義后的實(shí)際意義輸出,如:

#include<stdio.h>
int main(){
	printf("Hello world!");
	printf("\n");
	printf("Hello,\nworld!");
	return 0;
	}

輸出結(jié)果:

(2)格式控制字符串中有%引導(dǎo)的格式字符時(shí),輸出值參數(shù)表中的數(shù)量以及類型必須和格式字符一致,如:

#include<stdio.h>
int main(){
	int a = 123;
	double b = 35.8,c = 1.0;
	printf("a = %d,b = %d\n",a,b);
	printf("a = %d,c = %f\n",a);
	return 0;
	}

運(yùn)行結(jié)果:

分析:第一個(gè)printf函數(shù)中的輸出參數(shù)b是double型,但對(duì)應(yīng)的格式控制符為%d,當(dāng)類型不一致時(shí)并不會(huì)進(jìn)行類型轉(zhuǎn)換,而會(huì)將實(shí)際轉(zhuǎn)入的double型值當(dāng)作需要的整形類型來(lái)理解,因此出現(xiàn)非預(yù)期結(jié)果;第二個(gè)printf函數(shù)中,格式控制字符串給出了兩個(gè)%引導(dǎo)的格式字符,但是輸出參數(shù)表中只有一個(gè)參數(shù)a。因此輸出c的值默認(rèn)為內(nèi)存中a變量后面存儲(chǔ)單元的數(shù)據(jù)值,即c的值我們不能確定。

附表1:

printf函數(shù)中用到的格式字符

格式字符說(shuō)明
d輸出帶符號(hào)的十進(jìn)制整數(shù),正數(shù)的符號(hào)省略
u以無(wú)符號(hào)的十進(jìn)制整數(shù)形式輸出
o以無(wú)符號(hào)的八進(jìn)制整數(shù)形式輸出,不輸出前導(dǎo)符0
x以無(wú)符號(hào)十六進(jìn)制整數(shù)形式(小寫(xiě))輸出,不輸出前導(dǎo)符0x
X以無(wú)符號(hào)十六進(jìn)制整數(shù)形式(大寫(xiě))輸出,不輸出前導(dǎo)符0X
f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)
e以指數(shù)形式(小寫(xiě)e表示指數(shù)部分)輸出實(shí)數(shù)
E以指數(shù)形式(大寫(xiě)E表示指數(shù)部分)輸出實(shí)數(shù)
g自動(dòng)選取f或e中輸出寬度較小的一種使用,且不輸出無(wú)意義的0
c輸出一個(gè)字符
s輸出字符串

 附表2:

printf函數(shù)中用到的格式修飾符

格式修飾符說(shuō)明
英文字母l修飾格式字符d、u、o、x時(shí),用于輸出long型數(shù)據(jù)
英文字母L修飾格式字符f、e、g時(shí),用于輸出long double型數(shù)據(jù)
英文字母h修飾格式字符d、o、x時(shí),用于輸出short型數(shù)據(jù)
輸出域?qū)抦(m為整數(shù))指定輸出項(xiàng)輸出時(shí)所占的列數(shù)
顯示精度.n(n為整數(shù))對(duì)于實(shí)數(shù),表示輸出n位小數(shù);對(duì)于字符串,表示截取的字符個(gè)數(shù)
-(減號(hào))輸出數(shù)字或字符在域內(nèi)向左靠

到此這篇關(guān)于C語(yǔ)言基礎(chǔ)之C語(yǔ)言格式化輸出函數(shù)printf詳解的文章就介紹到這了,更多相關(guān)語(yǔ)言格式化輸出函數(shù)printf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C++動(dòng)態(tài)調(diào)用動(dòng)態(tài)鏈接庫(kù)(DLL或SO)的方法實(shí)現(xiàn)

    C++動(dòng)態(tài)調(diào)用動(dòng)態(tài)鏈接庫(kù)(DLL或SO)的方法實(shí)現(xiàn)

    動(dòng)態(tài)鏈接庫(kù)是一種Windows操作系統(tǒng)下常見(jiàn)的可執(zhí)行文件格式,它包含了一些可被其他應(yīng)用程序調(diào)用的函數(shù)和數(shù)據(jù),本文主要介紹了C++動(dòng)態(tài)調(diào)用動(dòng)態(tài)鏈接庫(kù)(DLL或SO),感興趣的可以了解一下
    2024-01-01
  • C++類中隱藏的幾個(gè)默認(rèn)函數(shù)你知道嗎

    C++類中隱藏的幾個(gè)默認(rèn)函數(shù)你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C++類中隱藏的幾個(gè)默認(rèn)函數(shù),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C++如何調(diào)用簡(jiǎn)單的python程序

    C++如何調(diào)用簡(jiǎn)單的python程序

    這篇文章主要介紹了C++如何調(diào)用簡(jiǎn)單的python程序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++ random_shuffle()方法案例詳解

    C++ random_shuffle()方法案例詳解

    這篇文章主要介紹了C++ random_shuffle()方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言中野指針和空指針的區(qū)別

    C語(yǔ)言中野指針和空指針的區(qū)別

    本文主要介紹了野指針和空指針的概念、用途、原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序遍歷

    C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序遍歷

    本文將結(jié)合動(dòng)畫(huà)和代碼演示如何通過(guò)C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序的遍歷,代碼具有一定的價(jià)值,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理你了解嗎

    C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C語(yǔ)言的strcpy函數(shù)你了解嗎

    C語(yǔ)言的strcpy函數(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的strcpy函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 淺析C++字節(jié)對(duì)齊容易被忽略的兩個(gè)問(wèn)題

    淺析C++字節(jié)對(duì)齊容易被忽略的兩個(gè)問(wèn)題

    今天我就和大家分享一下C++字節(jié)對(duì)齊容易被忽略的兩個(gè)問(wèn)題。以下問(wèn)題也是我實(shí)際開(kāi)發(fā)工作中遇到的,如果有不同意見(jiàn)歡迎交流
    2013-07-07

最新評(píng)論

桐梓县| 柳河县| 太康县| 和政县| 达孜县| 南郑县| 弥渡县| 红河县| 连平县| 连山| 将乐县| 沭阳县| 昌乐县| 斗六市| 福泉市| 安阳市| 大埔县| 法库县| 株洲市| 洛川县| 时尚| 长兴县| 万州区| 大宁县| 临澧县| 新干县| 松溪县| 鹿邑县| 建瓯市| 静宁县| 德化县| 图木舒克市| 通城县| 桃江县| 印江| 德阳市| 太湖县| 山丹县| 建宁县| 澄城县| 鄂托克旗|