




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基本數(shù)據(jù)類型運算符與表達式第一頁,共七十七頁,2022年,8月28日1本章主要內(nèi)容(1)熟悉和掌握C++中數(shù)據(jù)類型的分類及使用,注意它與C數(shù)據(jù)類型間的區(qū)別。(2)熟練掌握C++中各種運算符的使用。(3)熟練掌握C++中表達式的描述和計算。(4)理解和掌握C++中數(shù)據(jù)的輸入和輸出。第二頁,共七十七頁,2022年,8月28日22.1數(shù)據(jù)類型C++提供了十分豐富的預定義數(shù)據(jù)類型,稱為基本數(shù)據(jù)類型。除了基本數(shù)據(jù)類型外,C++還提供了構造數(shù)據(jù)類型,包括數(shù)組、結構體、共用體(聯(lián)合體)、枚舉和類等。C++可以使用的數(shù)據(jù)類型如圖所示:第三頁,共七十七頁,2022年,8月28日32.1.1基本數(shù)據(jù)類型C++提供的5種基本數(shù)據(jù)類型各自所占的內(nèi)存空間是不同的,因此所表示的數(shù)據(jù)的范圍大小也不同。在5種基本數(shù)據(jù)類型中:字符型用于處理ASCII碼字符整型用于處理整型數(shù)據(jù)浮點型用于處理帶小數(shù)的實數(shù)布爾型用于表示的邏輯的true和false無值型主要用于處理函數(shù)和指針第四頁,共七十七頁,2022年,8月28日42.1.2類型修飾符C++的類型修飾符包括:signed
有符號型unsigned
無符號型short
短型long
長型第五頁,共七十七頁,2022年,8月28日5在基本數(shù)據(jù)類型(除void類型外)前加上類型修飾符后,C++的基本數(shù)據(jù)類型如表2.2所示:第六頁,共七十七頁,2022年,8月28日6說明:(1)表中帶[]的部分表示是可以省略的,如short[int]可以寫為shortint或簡寫為short,二者的含義是相同的。(2)4種修飾符都可以用來修飾整型和字符型。用signed修飾的類型的值可以為正數(shù)或負數(shù),用unsigned修飾的類型的值只能為正數(shù)。(3)用short修飾的類型的值一定不大于對應的整數(shù),用long修飾的類型的值一定不小于對應的整數(shù)。第七頁,共七十七頁,2022年,8月28日72.2常量和變量數(shù)據(jù)可分為常量和變量兩大類。常量(Constant):是指在程序的執(zhí)行過程中其值不會發(fā)生改變的數(shù)據(jù)。變量(Variable):是指在程序執(zhí)行過程中其值可以被改變的數(shù)據(jù)。
第八頁,共七十七頁,2022年,8月28日82.2.1常量常量按照不同的數(shù)據(jù)類型可以分為:字符型常量、整型常量、浮點型常量以及字符串常量等。程序是根據(jù)程序中常量的書寫格式來區(qū)分它是屬于哪種類型的常量。第九頁,共七十七頁,2022年,8月28日91.整型常量由于整數(shù)類型可分為int,shortint等類別,因此整型常量也可分為以上類別。注意:在程序中書寫整型常量時沒有小數(shù)部分。在程序中,用戶根據(jù)需要分別可以用十進制、八進制和十六進制的形式書寫整型常量。
(1)十進制格式:由數(shù)字0至9和正、負號組成,書寫時直接寫出數(shù)字,如123,516等。若為longint型的常量,需在常量后加一個字母l或L,例如123L。第十頁,共七十七頁,2022年,8月28日10(2)八進制格式:以0開頭的數(shù)字(0至7)序列,如011,010007,0177777等。如011表示八進制數(shù)11,即(11)8,它相當于十進制數(shù)9。(3)十六進制格式:以0x或0X開頭的數(shù)字(數(shù)字0至9、字母a至f)序列,如0x11,0x78AC,0xFFFF等。如0x11表示十六進制數(shù)11,即(11)16,它相當于十進制數(shù)17。第十一頁,共七十七頁,2022年,8月28日112.浮點型常量浮點型常量可以用十進制小數(shù)形式或指數(shù)形式表示。注意:在程序中無論采用十進制小數(shù)形式還是指數(shù)形式,在內(nèi)存中都是以指數(shù)形式存儲的。第十二頁,共七十七頁,2022年,8月28日12(1)十進制小數(shù)形式:一般由整數(shù)部分和小數(shù)部分組成,也可省略其一,但不能二者皆省。例如:0.345也可表示為.345,45.0也可表示為45.;
如果在實數(shù)的數(shù)字后面加上字母F或f,表示此數(shù)為單精度浮點數(shù);如果加上字母L或l,表示此數(shù)為長雙精度數(shù)。第十三頁,共七十七頁,2022年,8月28日13(2)指數(shù)形式:也就是通常所講的科學記數(shù)法的描述形式。
數(shù)符數(shù)字部分指數(shù)部分其中,數(shù)字分部分和指數(shù)部分缺一不可,指數(shù)部分以E或e開始,E或e表示后面的數(shù)是以10為底的冪.如:10-4可表示為1e-4,但不能寫成e-4,如:-0.00726可以表示為-0.726e-2,-7.26e-3,-72.6e-4等形式,它們所起的作用是相同的。第十四頁,共七十七頁,2022年,8月28日143.字符型常量字符型常量分為普通的字符常量和轉(zhuǎn)義字符常量。(1)普通的字符常量用一對單引號括起來的一個字符就是字符型常量,如‘s’,‘Y’都是合法的字符常量。第十五頁,共七十七頁,2022年,8月28日15注意:①單引號只是字符與其他部分的分隔符,不是字符的一部分,并且不能用雙引號代替單引號,如"Y"不代表字符常量。②字符常量只能包括一個字符,如'ab'是不合法的。③在單引號中的字符不能是單引號或反斜杠,'''和'\'都是非法的字符常量④字符常量區(qū)分大小寫,如'Y'和'y'表示兩個不同的字符常量。第十六頁,共七十七頁,2022年,8月28日16(2)轉(zhuǎn)義字符常量在C++中,有一些字符用于控制輸出或編譯系統(tǒng)本身保留,無法作為字符常量來表示。C++規(guī)定,采用反斜杠后跟一個字母來代表一個控制字符,反斜杠后的字符不再作原有的字符使用,而具有新的含義。轉(zhuǎn)義字符在屏幕上是不能顯示的。C++中常用的轉(zhuǎn)義字符如表2.3所示。第十七頁,共七十七頁,2022年,8月28日174.字符串常量用一對雙引號括起來的一個或多個字符的序列稱為字符串常量或字符串。字符串以雙引號為定界符,雙引號不作為字符串的一部分,可以將轉(zhuǎn)移字符加入字符串,轉(zhuǎn)義字符占用一個字節(jié)。如:"Hello""A""GoodMorning!""Isay\n"都是合法的字符串常量。第十八頁,共七十七頁,2022年,8月28日18字符串中的字符的個數(shù)稱為該字符串的長度。字符串常量要用字符數(shù)組來存放。在存儲時,系統(tǒng)自動在字符串的末尾加以字符串結束標志,即轉(zhuǎn)義字符"\0"。如"Hello"在內(nèi)存中占用6個字節(jié),"Isay\n"占用7個字節(jié)。第十九頁,共七十七頁,2022年,8月28日19字符串可以寫在多行上,必須用續(xù)行符反斜線"\"表示下一行字符是這一行字符的延續(xù)。例如:cout<<''Thisisa\book.'';該語句輸出結果為:Thisisabook.第二十頁,共七十七頁,2022年,8月28日205.符號常量常量也可用一個標識符來表示,稱為符號常量。符號常量的一般定義格式如下:
#define符號名常量值例如:#defineMAX30//不是語句,末尾不加分號main(){......}此處,#define語句定義MAX為30,凡在程序中出現(xiàn)MAX的地方都代表30,它可與常量進行運算。第二十一頁,共七十七頁,2022年,8月28日21使用符號常量可以使得符號的含義更加清楚,在需要改變常量值時,只需改變第一行中的常量值即可,程序中所有的MAX的值都會相應地改變。注意:(1)它不同于變量,在其作用域內(nèi)其值不能改變和賦值。上例中如再用MAX=40;這一語句進行賦值則是錯誤的。(2)符號常量名一般用大寫,而變量名用小寫,以示區(qū)別。第二十二頁,共七十七頁,2022年,8月28日22程序中常量的表示方法在程序中的常量有以下3種表示方法。(1)在程序中直接寫入常量例如:-200,3.4E-10,'A','1',0x120,045,5.35,1000linti;chars;floatf;i=20;s='a';f=2.0;第二十三頁,共七十七頁,2022年,8月28日23(2)利用#define定義宏常量
#define宏名常數(shù)例如:#definePI3.14…………s=2*PI*r;…………第二十四頁,共七十七頁,2022年,8月28日24(3)利用const定義正規(guī)常數(shù)
const數(shù)據(jù)類型標識符常數(shù)名=常量值;說明:①const必須放在被修飾類型符和類型名的前面。②數(shù)據(jù)類型是一個可選項,用來指定常數(shù)值的數(shù)據(jù)類型,如果省略了該數(shù)據(jù)類型,那么,C++編譯程序認為它是int類型。第二十五頁,共七十七頁,2022年,8月28日252.2.2變量1.變量的概念變量是用于保存程序運算過程中所需要的原始數(shù)據(jù)、中間運算結果和最終結果的其值可以改變的量。2.定義變量每一變量都要先定義、后使用;定義變量3種格式:[修飾符]數(shù)據(jù)類型標識符變量名列表;[修飾符]數(shù)據(jù)類型標識符變量名=初始化值;[修飾符]數(shù)據(jù)類型標識符變量名1[=初始值1],變量名2[=初始值2],……;第二十六頁,共七十七頁,2022年,8月28日26說明:(1)此處的類型標識符表示要定義的變量所屬的數(shù)據(jù)類型,它可以是前面介紹的的數(shù)據(jù)類型標識符中的一種。例如int,double,bool等。(2)變量名是每個變量的名稱,由用戶自己命名,要遵循命名規(guī)則。(3)定義變量時,可以在類型前面加上一些修飾符來表示這些變量的使用方法。
C++中常用的變量定義修飾符如表2.4所示。第二十七頁,共七十七頁,2022年,8月28日27如:chara,b; //定義字符型變量aexternintc; //c在其它函數(shù)中已經(jīng)定義,這里只是用到該變量,對該變量進行聲明staticinti=1000;//定義靜態(tài)整型變量i,i的初始值為1000floata=2,b=3,c;//定義變量a,b,c,且a、b的初始值分別為2,3第二十八頁,共七十七頁,2022年,8月28日283.變量的初始化在定義變量的同時可以給變量賦一個初值,稱為變量的初始化。方法是在定義變量時,在變量名的后面寫上“=初值”。第二十九頁,共七十七頁,2022年,8月28日29例如:inta=3,b=3*(2+9);在對多個變量賦于同一初值時,必須分別指定。應當寫成:inta=3,b=3,c=3;或者:inta,b,c=3;a=b=c;而不能寫成:inta=b=c=3;第三十頁,共七十七頁,2022年,8月28日304.定義變量的位置變量的定義一般可有以下3種位置。(1)在函數(shù)體內(nèi)部在函數(shù)體內(nèi)部定義的變量稱為局部變量,這種局部變量只在進入定義它的函數(shù)體時起作用,離開該函數(shù)體后該變量就消失(被釋放),即不再起作用。因此,不同函數(shù)體內(nèi)部可以定義相同名稱的變量,而互不干擾。第三十一頁,共七十七頁,2022年,8月28日31如:voidfunc1(void){ inty; y=2;}voidfunc2(void){ inty; y=-100;}
本例中兩個函數(shù)體內(nèi)部都分別定義了變量y,但它們都只能在各自的函數(shù)體內(nèi)起作用,互不干擾,都是局部變量。第三十二頁,共七十七頁,2022年,8月28日32(2)形式參數(shù)當定義一個有參函數(shù)時,函數(shù)名后面括號內(nèi)的變量統(tǒng)稱為形式參數(shù)。intis_in(char*a,charb){while(*a)if(*a==b)return1;elsea++;return0;}
本例中函數(shù)is_in()后面括號內(nèi)的變量a和b是該函數(shù)的形式參數(shù),它們都只能在該函數(shù)體內(nèi)起作用,是該函數(shù)的局部變量。第三十三頁,共七十七頁,2022年,8月28日33(3)全局變量在所有函數(shù)體的外部定義的變量,其作用范圍是整個程序,并在整個程序運行期間有效?!纠?-1】全局變量的使用。第三十四頁,共七十七頁,2022年,8月28日342.3運算符和表達式2.3.1算術運算符和算術表達式算術運算符就是對數(shù)據(jù)進行算術運算的運算符。如:加、減、乘、除等,是在程序中使用最多的一種運算符,C++的算術運算符如表2.5所示。第三十五頁,共七十七頁,2022年,8月28日351.自增和自減運算符自增(++)和自減(--)的作用是使變量的值增1或減1。運算符(++)和(--)既可放在變量的前面,也可放在變量的后面,但作用的效果是不同的,如表2.6所示?!纠?-2】自增和自減運算符的使用。第三十六頁,共七十七頁,2022年,8月28日362.數(shù)據(jù)類型轉(zhuǎn)換C++中類型轉(zhuǎn)換有兩種方式,即隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換。(1)隱式類型轉(zhuǎn)換在表達式中經(jīng)常會有不同類型的數(shù)據(jù)進行運算,此時編譯器會自動將它們轉(zhuǎn)換為相同類型后再進行運算,賦值時將所賦值轉(zhuǎn)換成被賦值變量類型,這種由編譯器自動完成的類型轉(zhuǎn)換稱為隱式類型轉(zhuǎn)換。隱式類型轉(zhuǎn)換是按照從低到高的順序進行的,如圖2-2所示。第三十七頁,共七十七頁,2022年,8月28日37低高第三十八頁,共七十七頁,2022年,8月28日38例如:e=5*'b'+3.14-3L/2.0的順算順序如下:①進行5*'b'的運算,先將'b'轉(zhuǎn)換成整數(shù)98,運算結果為490。②進行490+3.14的運算,將490和3.14轉(zhuǎn)換成double型,結果為493.14。③計算3L/2.0,首先轉(zhuǎn)換為double型,結果為1.5。④進行的運算,結果為double型的491.64。第三十九頁,共七十七頁,2022年,8月28日39(2)顯式類型轉(zhuǎn)換顯式類型轉(zhuǎn)換,也稱為強制類型轉(zhuǎn)換,指編程人員利用類型轉(zhuǎn)換運算符顯式地將某一數(shù)據(jù)從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。 類型名(表達式)或 (類型名)表達式【例2-3】顯式類型轉(zhuǎn)換。第四十頁,共七十七頁,2022年,8月28日402.3.2賦值運算符和賦值表達式賦值運算符的用法格式為:變量名賦值運算符常量、變量或表達式說明:被賦值的目標即賦值運算符左邊的量必須是變量,而不能是常量或表達式。也就是說,常量或表達式是不能被賦值的。C++中的賦值運算符如表2.7所示。第四十一頁,共七十七頁,2022年,8月28日41(3)意區(qū)分賦值運算符“=”與數(shù)學上的“等號”intx,y; //定義變量x,y為int類型變量x=10; //將變量x賦值為10x=x+20; //將30賦給變量xy=x++; //將x的值賦給y(值為30),變量x值變成31。y-=x+5; //等價于y=y-(x+5);表達式值為-6,y值為-6x%=y+10//等價于x=x%(y+10);表達式為3,y值為3第四十二頁,共七十七頁,2022年,8月28日422.3.3sizeof運算符sizeof運算符的功能是求某一數(shù)據(jù)類型或某一變量在內(nèi)存中所占空間的字節(jié)數(shù)。
sizeof(變量名或數(shù)據(jù)類型)
或
sizeof變量名或數(shù)據(jù)類型sizeof運算符的應用如【例2-4】所示。第四十三頁,共七十七頁,2022年,8月28日432.3.4關系運算符和關系表達式關系運算符就是對兩個量之間進行比較,判斷比較結果的運算符。C++的關系運算符如表2.8所示。第四十四頁,共七十七頁,2022年,8月28日44由關系運算符將兩個表達式連接形成的運算式子稱為關系表達式,一個關系表達式的值是一個邏輯值。
表達式關系運算符表達式其中:表達式可以是算數(shù)表達式、關系表達式、邏輯表達式、賦值表達式或字符表達式。當關系表達式成立時,其值為真(1);當關系表達式不成立時,其值為假(0)。第四十五頁,共七十七頁,2022年,8月28日45假設a=1,b=20,c=3,則:a<b 表達式成立,其值為1b==c 表達式不成立,其值為0(a+b)!=c 表達式成立,其值為1第四十六頁,共七十七頁,2022年,8月28日462.3.5邏輯運算符和邏輯表達式邏輯運算符是對兩個邏輯量間進行運算的運算符,如表2.9所示。第四十七頁,共七十七頁,2022年,8月28日47由邏輯運算符將兩個表達式連接形成的式子稱為邏輯表達式。對于參加邏輯運算的操作數(shù),系統(tǒng)認為“非0”為真,“0”為假。邏輯表達式的結果只能為邏輯真(1)或邏輯假(0)各種邏輯運算的“真值表”如表2.10所示。第四十八頁,共七十七頁,2022年,8月28日48注意:(1)C++中,在給出一個邏輯表達式的最終計算結果值時,用1表示真,用0表示假。但在進行邏輯運算的過程中,凡是遇到非零值時就當真值參加運算,遇到0值時就當假值參加運算。(2)在邏輯表達式的求值過程中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的值時才執(zhí)行該運算符。第四十九頁,共七十七頁,2022年,8月28日492.3.6條件運算符在C++中只提供了一個三目運算符——即條件運算符“?:”,其一般形式為:表達式1?表達式2:表達式3條件運算的運算規(guī)則是:首先判斷表達式1的值,若其值為真(非0),則取表達式2的值為整個表達式的值;若其值為假(0),則取表達式3的值為整個表達式的值。如:若a=3,b=4,則條件表達式a>b?a:b的值為4。第五十頁,共七十七頁,2022年,8月28日502.3.7位運算符1.位運算符及其運算規(guī)則位是計算機表示信息的最小單位,一般用0和1表示。位運算符是指能進行二進制位運算的運算符。位運算符的運算對象必須為整數(shù)。C++提供的位運算符如表2.11所示。第五十一頁,共七十七頁,2022年,8月28日51位運算的運算規(guī)則為:(1)按位與&:兩個運算量相應的位都是1,則該位的結果值為1,否則為0。(2)按位或|:兩個運算量相應的位只要有一個是1,則該位的結果值為1,否則為0。(3)按位異或^:兩個運算量相應的位不同,則該位的結果值為1,否則為0。第五十二頁,共七十七頁,2022年,8月28日52(4)按位取反~:將運算量的每一位取反,即將1變0,0變1。(5)按位左移<<:將操作數(shù)中的每一位向左移動指定的位數(shù),移出的位被舍棄,空出的位補0。(6)按位右移<<:將操作數(shù)中的每一位向右移動指定的位數(shù),移出的位被舍棄,空出的位補0或補符號位,這要由機器決定第五十三頁,共七十七頁,2022年,8月28日532.復合位運算符位運算符與賦值運算符結合可以形成復合位運算符。如表2.12所示:第五十四頁,共七十七頁,2022年,8月28日542.3.8逗號運算符逗號運算符“,”的運算優(yōu)先級是所有運算符中最低的。使用逗號運算符可以將多個表達式組合成一個表達式。
表達式1,表達式2,……,表達式N在計算逗號表達式的值時,應按照從左至右的順序依次分別計算各個表達式的值,而整個逗號表達式的值和類型是由最右邊的表達式?jīng)Q定的。如:inta=3,b=4;則表達式a++,b++,a+b的值為9。第五十五頁,共七十七頁,2022年,8月28日552.3.9運算符的優(yōu)先級與結合性當一個表達式中包含多個運算符時,要確定運算的結果必須首先確定運算的先后順序,即運算符的優(yōu)先級和結合性。C++中運算符的優(yōu)先級和結合性如表2.13所示。第五十六頁,共七十七頁,2022年,8月28日56各類運算符,它們的優(yōu)先級按照從高到低的次序可以排列為:單目運算符>算術運算符>關系運算符>邏輯運算符>條件運算符>賦值運算符C++中,對表達式求值時,先按優(yōu)先級確定運算次序,再將優(yōu)先級相同的運算符按結合性進行運算。第五十七頁,共七十七頁,2022年,8月28日572.4數(shù)據(jù)的輸入與輸出在C++語言中,數(shù)據(jù)的輸入和結果的輸出是分別使用系統(tǒng)所提供的輸入流對象cin和輸出流對象cout來完成的。在使用過程中,只要在程序的開頭嵌入相應的頭文件“iostream.h”即可。第五十八頁,共七十七頁,2022年,8月28日582.4.1數(shù)據(jù)的輸出cout輸出流對象cout輸出數(shù)據(jù)語句的一般格式為:
cout<<數(shù)據(jù)1<<數(shù)據(jù)2<<……<<數(shù)據(jù)n;說明:(1)cout是系統(tǒng)預定義的一個標準輸出設備(一般代表顯示器);“<<”是輸出操作符,用于向cout輸出流中插入數(shù)據(jù)(2)cout的作用是向標準輸出設備上輸出數(shù)據(jù),被輸出的數(shù)據(jù)可以是常量、已有值的變量或是一個表達式。【例2-5】cout語句的使用第五十九頁,共七十七頁,2022年,8月28日59(3)可以在cout輸出流中插入C++中的轉(zhuǎn)義字符。如:cout<<"thevalueofa:\n";cout<<a;表示輸出完字符串Inputthevalueofa:后,在下一行輸出變量a的值。(4)可以將多個被輸出的數(shù)據(jù)寫在一個cout中,各輸出項間用“<<”操作符隔開即可,但要注意cout首先按從右向左的順序計算出各輸出項的值,然后再輸出各項的值。如:cout<<"valueofa:"<<a<<"valueofb:"<<b<<"Theresultis:"<<sqrt(a*a+b*b);再如:設變量i的值為10,則cout<<i<<","<<i++<<","<<i++;的輸出結果為:12,11,10(5)一個cout語句也可拆成若干行書寫,但注意語句結束符“;”只能寫在最后一行上。如:對于上面的語句也可寫成如下形式:第六十頁,共七十七頁,2022年,8月28日60cout<<"valueofa:"http://注意行末無分號
<<a<<"valueofb:"<<b<<"Theresultis:"<<sqrt(a*a+b*b);//在此處書寫分號(6)在cout中,實現(xiàn)輸出數(shù)據(jù)換行功能的方法:既可使用轉(zhuǎn)義字符“\n”,也可使用表示行結束的流操作子endl。如:cout<<"ThisisfirstLine.\n"<<"Thisissecondline.";上面語句可等價地寫為:cout<<"ThisisfirstLine."<<endl<<"Thisissecondline.";第六十一頁,共七十七頁,2022年,8月28日61(7)在cout中還可以使用流控制符控制數(shù)據(jù)的輸出格式,但使用這些流控制符時,要在程序的頭上嵌入頭文件#include<iomanip.h>。常用的流控制符及其功能如表2.14所示。表2.14I/O流的常用控制符控制符功能dec十進制數(shù)輸出hex十六進制數(shù)輸出oct八進制數(shù)輸出setfill(c)在給定的輸出域?qū)挾葍?nèi)填充字符csetprecision(n)設顯示小數(shù)精度為n位setw(n)設域?qū)挒閚個字符setiosflags(ios::fixed)固定的浮點顯示第六十二頁,共七十七頁,2022年,8月28日62setiosflags(ios::scientific)指數(shù)顯示setiosflags(ios::left)左對齊setiosflags(ios::right)右對齊setiosflags(ios::skipws)忽略前導空白setiosflags(ios::uppercase)十六進制數(shù)大寫輸出setiosflags(ios::lowercase)十六進制數(shù)小寫輸出setiosflags(ios::showbase)按十六/八進制輸出數(shù)據(jù)時,前面顯示前導符0x/0;第六十三頁,共七十七頁,2022年,8月28日63①設置域?qū)挘核^域?qū)捑褪潜惠敵鰯?shù)據(jù)所占的輸出寬度(單位是字符數(shù))。設置域?qū)捒梢允褂昧骺刂品鹲etw(n)和cout的方法cout.width(n)
其中n為正整數(shù),表示域?qū)挕5?,cout.width(n)和setw(n)二者都只對下一個被輸出的數(shù)據(jù)有作用,若一個輸出語句內(nèi)有多個被輸出的數(shù)據(jù),而要保持一定格式域?qū)挄r,需要在每一輸出數(shù)據(jù)前加上cout.width(n)或setw(n)。此外,當參數(shù)n的值比實際被輸出數(shù)據(jù)的寬度大時,則在給定的域?qū)拑?nèi),數(shù)據(jù)靠右輸出,不足部分自動填充空格符;若被輸出數(shù)據(jù)的實際寬度比n值大時,則數(shù)據(jù)所占的實際位數(shù)輸出數(shù)據(jù),設置域?qū)挼膮?shù)n不再起作用。第六十四頁,共七十七頁,2022年,8月28日64【例2-6】cout流控制符setw的使用。#include<iostream.h>#include<iomanip.h>voidmain(){inta=21,b=999;cout<<setw(3)<<a<<setw(4)<<a<<setw(5)<<a<<endl; cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl;}其輸出結果是:︼21︼︼21︼︼︼21//程序中第一個cout的輸出結果999︼999︼︼999//程序中第二個cout的輸出結果10201020︼1020//程序中第三個cout的輸出結果 第六十五頁,共七十七頁,2022年,8月28日65②設置域內(nèi)填充字符:在默認情況下,當被輸出的數(shù)據(jù)未占滿域?qū)挄r,會自動在域內(nèi)靠左邊填充相應個數(shù)的空格符。但我們也可以設置在域內(nèi)填充其他的字符,方法是利用cout的fill方法cout.fill(c)或setfill(c)。cout.fill(c)上和setfill(c)可以對所有被輸出的數(shù)據(jù)起作用?!纠?-7】在例2-6的基礎上增加域內(nèi)填充字符的功能。#include“iostream.h”#include“iomanip.h”voidmain(){inta=21,b=999;cout.fill(‘#’);//設置域內(nèi)填充字符為#字符
cout<<setw(3)<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout.fill(‘%’);//將域內(nèi)填充字符改為%字符cout<<setw(3)<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl;}第六十六頁,共七十七頁,2022年,8月28日66其輸出結果是:#21##21###21//程序中第一個cout的輸出結果, 未占滿域?qū)挼牟糠痔畛?字符。999#999##999//程序中第二個cout的輸出結果10201020%1020//程序中第三個cout的輸出結果, 未占滿域?qū)挼牟糠痔畛?字符。當采用流控制符設置填充字符時,上面程序代碼也可等價地改為:#include<iostream.h>#include<iomanip.h>voidmain(){int
a=21,b=999;cout<<setw(3)<<setfill(‘#')<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<setfill(‘%')<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl;}第六十七頁,共七十七頁,2022年,8月28日67③設置輸出數(shù)據(jù)的進位計數(shù)制:在默認情況下,被輸出的數(shù)據(jù)按十進制格式輸出。但可以使用流控制符hex和oct控制數(shù)據(jù)的輸出格式為十六進制和八進制,一旦設置成某種進位計數(shù)制后,數(shù)據(jù)的輸出就以該種數(shù)制為主,可利用流控制符dec將數(shù)制重新成十進制。【例2-8】在例2-7的基礎上增加設置輸出數(shù)據(jù)進位計數(shù)制的功能。#include<iostream.h>#include<iomanip.h>voidmain(){inta=21,b=999;//設置以十六制格式輸出數(shù)據(jù)cout<<setw(3)<<setfill('#')<<hex<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<setfill(‘%’)<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl; //設置以八制格式輸出數(shù)據(jù)cout<<setw(3)<<setfill('#')<<oct<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<setfill('%')<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl; //設置以十制格式輸出數(shù)據(jù)cout<<setw(3)<<setfill('#')<<dec<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<setfill('%')<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl;} 第六十八頁,共七十七頁,2022年,8月28日68程序的輸出結果為:#15##15###15//以十六進制格式輸出數(shù)據(jù)3e7#3e7##3e73fc%3fc%%3fc#25##25###25//以八進制格式輸出數(shù)據(jù)17471747#174717741774%1774#21##21###21//以十進制格式輸出數(shù)據(jù)999#999##99910201020%1020第六十九頁,共七十七頁,2022年,8月28日69④設置浮點數(shù)的輸出格式:對于浮點數(shù),既可以用小數(shù)格式輸出,也可以用指數(shù)格式輸出。這可以分別通過setiosflags(ios::fixed)和setiosflags(ios::scientific)來控制?!纠?-9】已知圓的半徑r=6.779,計算并輸出圓的周長和面積,要求分別用指數(shù)和小數(shù)兩種格式輸出。#include<iostream.h>#include<iomanip.h>voidmain(){constdoublepi=3.14159;doubler=6.779,c,s;c=2.0*pi*r;//計算圓的周長
s=pi*r*r;//計算圓的面積第七十頁,共七
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際貿(mào)易買賣合同模板
- 采購合同協(xié)議樣本
- 機械租賃安全規(guī)范合同版
- 供熱服務保障合同
- 工廠購銷合同范本
- 城市戶外廣告投放工程合同
- 塔吊設備供應合同
- 采購與供應合同協(xié)議書范本
- 長期倉庫租賃合同模板
- 寵物貓咪領養(yǎng)及養(yǎng)護合同2025
- 少兒美術幼兒園課件- 4-6歲 《沙漠鴕鳥》
- ChatGPT人工智能與通用大模型演講稿
- 撤場通知書( 模板)
- richcui美國sspc富鋅底漆解讀
- IATF169492016內(nèi)部審核報告范例
- 人教版高中地理必修一全冊測試題(16份含答案)
- 成果導向(OBE)教育理念課件
- 交通運輸概論全套PPT完整教學課件
- 西北工業(yè)大學英文簡介
- 《動畫場景設計》第一章 動畫場景設計概述
- 2023年湖北宜昌伍家新城投資控股集團有限公司招聘筆試題庫含答案解析
評論
0/150
提交評論