C++語言基礎(chǔ)計算機教學(xué)課件PPT_第1頁
C++語言基礎(chǔ)計算機教學(xué)課件PPT_第2頁
C++語言基礎(chǔ)計算機教學(xué)課件PPT_第3頁
C++語言基礎(chǔ)計算機教學(xué)課件PPT_第4頁
C++語言基礎(chǔ)計算機教學(xué)課件PPT_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、C+語言基礎(chǔ)語言基礎(chǔ)C+程序?qū)嵗绦驅(qū)嵗?1#include using namespace std;int main() coutHello!n; coutWelcome to C+!n; return 0;運行結(jié)果運行結(jié)果:Hello!Welcome to C+!C+字符集字符集 C+字符集是C+程序中可以使用的基本符號程序中可以使用的基本符號大小寫的英文字母:大小寫的英文字母:A AZ Z,a az z數(shù)字字符:數(shù)字字符:0 09 9特殊字符:例如特殊字符:例如 空格空格 ! !# #% % & &* *_ _( (下劃線下劃線) )+ += =- - / / “; ;.

2、 ., ,()()C+詞法記號(類似單詞)詞法記號(類似單詞) 關(guān)鍵字關(guān)鍵字C+預(yù)定義的單詞 標識符標識符程序員聲明的單詞,它命名程序正文中的一些實體 文字文字在程序中直接使用符號表示的數(shù)據(jù) 操作符操作符用于實現(xiàn)各種運算的符號 分隔符分隔符 如 ; 用于分隔各個詞法記號或程序正文 空白符空白符空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋注釋的總稱 C+字符集類似英語的字母字母或者漢語的筆畫筆畫。 C+的詞法符號類似英語的單詞單詞或漢語的字字。 C+程序類似英語的十四行詩十四行詩或者漢語的詩詩詞歌賦詞歌賦。C+字符集、詞法符號、程序關(guān)系字符集、詞法符號、程序關(guān)系C

3、+詞法記號詞法記號關(guān)鍵字關(guān)鍵字 關(guān)鍵字又稱保留字,是關(guān)鍵字又稱保留字,是C+預(yù)定義的單詞預(yù)定義的單詞 關(guān)鍵字是關(guān)鍵字是C+中具有固定意義的一批英文中具有固定意義的一批英文單詞或其縮寫,有專門的用途,用在固定單詞或其縮寫,有專門的用途,用在固定的位置,的位置,不能移作它用不能移作它用。C+中共有中共有74個個關(guān)鍵字關(guān)鍵字/保留字,每一個都有自己的故事。保留字,每一個都有自己的故事。 C+常用關(guān)鍵字及分類常用關(guān)鍵字及分類數(shù)據(jù)類型說明數(shù)據(jù)類型說明符與修飾符符與修飾符bool char wchar_t class const double enum float int long short signe

4、d struct union unsigned void volatile存儲類型說明存儲類型說明符符auto extern inline register static訪問說明符訪問說明符friend private protected public其它說明符其它說明符asm operator template this typedef virtual 語句與標號語句與標號break case catch continue default do else for goto if return switch throw try while 運算符及邏輯運算符及邏輯值值delete false

5、new sizeof trueC+詞法記號詞法記號標識符標識符 構(gòu)成規(guī)則:構(gòu)成規(guī)則: 以大寫字母、小寫字母或下劃線以大寫字母、小寫字母或下劃線(_)開始,由開始,由大寫字母、小寫字母、下劃線大寫字母、小寫字母、下劃線(_)或數(shù)字或數(shù)字09組成。組成。例例: 判斷下面哪些是合法的標識符:判斷下面哪些是合法的標識符:MyFile 94Salary Salary94 Salary 94 amount $amount void f3.5 Num_of_Student C+程序?qū)嵗绦驅(qū)嵗?2#include using namespace std;int main() const int PRICE=

6、30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotalendl; r=2.5; h=3.2; v=3.14159*r*r*h; coutvendl; return 0;數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)據(jù)類型告訴我們存儲單元中的數(shù)據(jù)的形式,及可以對存儲單元中的數(shù)據(jù)執(zhí)行哪些操作。 C+的數(shù)據(jù)類型可以分為基本類型基本類型、構(gòu)造類構(gòu)造類型型、指針類型指針類型、 空類型(空類型(void)四個大類。 基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字關(guān)鍵字字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍字符型char1-128127整 型int4-214748

7、36482147483647單精度浮點型float4(3.4E-383.4E38)雙精度符點型double8(1.7E-3081.7E308布爾型bool1true,false類型修飾符類型修飾符C+還允許在基本數(shù)據(jù)類型前加上類型修飾符,來更具體地表示數(shù)據(jù)類型。C+的類型修飾符包括: signed 有符號 unsigned 無符號 short 短型 long 長型 數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍常量寫法舉例常量寫法舉例Char1-128127A, 0,nsigned char1-12812756unsigned char10255100short int2-32768

8、32767100signed short int2-3276832767-3456unsigned short int 20655350 xffint 4- 2 1 4 7 4 8 3 6 4 8 21474836471000signed int4- 2 1 4 7 4 8 3 6 4 8 2147483647-123456unsigned int4042949672950 xffff數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍常量寫法舉例常量寫法舉例long int4- 2 1 4 7 4 8 3 6 4 8 2147483647-123456long long8-263263

9、-1 -3246unsigned long int 404294967295123456float 4(3.4E-383.4E38)2.35, -53.231,3E-2 Double8 ( 1 . 7 E - 3 0 8 1.7E308)12.354,-2.5E10long double10 ( 1 . 2 E - 4 9 3 2 1.2E4932)8.5E-300說明說明:(1)表中帶 的部分表示是可以省略的,如short int可以寫為short int 或簡寫為short,二者的含義是相同的。(2)四種修飾符都可以用來修飾整型。四種修飾符都可以用來修飾整型。用signed修飾的類型的值可

10、以為正數(shù)或負數(shù),用unsigned修飾的類型的值只能為正數(shù)。(3)用short修飾的類型,其值一定不大于對應(yīng)的整數(shù),用long修飾的類型,其值一定不小于對應(yīng)的整數(shù)。 C+的構(gòu)造類型是基本類型的組合,包括數(shù)組、結(jié)構(gòu)體和聯(lián)合體等 指針類型是對基本類型或構(gòu)造類型的地址進行操作的一種數(shù)據(jù)類型。 空類型(void)是什么 也沒有的一種特殊數(shù)據(jù)類型,僅用在有限的一些情況下,通常用作無返回值函數(shù)的返回類型。 有時也被歸有時也被歸類到基本類型類到基本類型常量常量 在C+語言中,數(shù)據(jù)分為常量和變量兩大類。 由于程序中的數(shù)據(jù)是有類型的,所以常量和變量都是有類型之分的。 常量按照不同的數(shù)據(jù)類型可以分為: 字符型常量

11、、整型常量、浮點型常量,以及字符串常量等。 程序是根據(jù)程序中常量的書寫格式來區(qū)分它是哪種類型常量的。整型常量在程序中書寫整型常量時,沒有小數(shù)部分。用戶可根據(jù)需要分別可以用十進制、八進制和十六進制的形式書寫: 十進制格式 :由數(shù)字0至9和正、負號組成,書寫時直接寫出數(shù)字,如:123,-516,+1000等。 八進制格式 :以數(shù)字0開頭的數(shù)字(0至7)序列,0111,010007,0177777等。 十六進制格式 :以0 x或0X開頭的數(shù)字(數(shù)字0至9、字母A至Z)序列,如0 x78AC,0 xFFFF等。浮點型常量 只能用十進制來表示。可以用小數(shù)或指數(shù)形式表示,不分單精度和雙精度類型。如:34.

12、5 , .345, 1.5e-3字符型常量字符型常量 (1)用一對單引號括起來的一個字符,單引號只是字符與其他部分的分割符,不是字符的一部分,并且,不能用雙引號代替單引號。在單引號中的字符不能是單引號或反斜杠。如: a , A, # 合法的字符常量 , 非法的字符常量 “A” 不代表字符常量 (2)另一種表示字符常量的方法是使用轉(zhuǎn)義字符。C+規(guī)定,采用反斜杠后跟一個字母來代表一個控制字符,具有新的含義 。C+中常用的轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符含義含義ASCII碼值(十進制)碼值(十進制)a響鈴(BEL)7b退格(BS)8n換行(LF)10r回車(CR)13t水平制表(HT)9v垂直制表(VT)1

13、1反斜杠92單引號39”雙引號340空格符(NULL)0ddd任意字符3位八進制數(shù)xhh任意字符2位十六進制數(shù)字符串常量字符串常量 用一對雙引號括起來的一個或多個字符的序列稱為字符串常量或字符串。字符串以雙引號為定界符,雙引號不作為字符串的一部分。如: “Hello”, “Good Morning!” ,“I say: “ Goodbye!” 字符串中的字符數(shù)稱為該字符串的長度,在存儲時,系統(tǒng)自動在字符串的末尾加以字符串結(jié)束標志,即轉(zhuǎn)義字符 0。符號常量符號常量常量也可用一個標識符來代表,稱為符號常量。如:#define PRICE 30int main()cout PRICEendl; re

14、turn 0;使用符號常量應(yīng)注意注意以下幾個方面:(1)它不同于變量,在作用域內(nèi)其值不能改變和賦值。 如:在上例中如再用PRICE=40;這一語句進行賦值則是錯誤的。(2)符號常量名一般用大寫,而變量名用小寫,以示區(qū)別。在程序中的常量有以下三種表示方法:在程序中的常量有以下三種表示方法:(1)在程序中直接寫入常量(詞法記號中的文字文字)如:-200,3.4E-10,A,1,0 x120,045,5.35,1000l(2)利用#define定義宏常量(符號常量符號常量)一般格式: #define 宏名 常數(shù)如:#define PI 3.14 s=2*PI*r; 程序中常量的表示方法程序中常量的表

15、示方法(3)利用const定義正規(guī)常數(shù)(常變量常變量)格式:const數(shù)據(jù)類型標識符 常量名=常量值;說明: const必須放在被修飾類型符和類型名前面 數(shù)據(jù)類型是一個可選項,用來指定常數(shù)值的數(shù)據(jù)類型,如果省略了該數(shù)據(jù)類型,那么編譯程序認為它是 int 類型如:const int a=10; 表示定義了一個初始值為10的整型常量,它在程序中不可改變,但可用于表達式的計算中1變量的概念及特點變量的概念及特點 程序中的變量是用于保存程序運算過程中所需要的原始數(shù)據(jù)、中間運算結(jié)果和最終結(jié)果的,因此,每一變量就相當(dāng)于一個容器,對應(yīng)每一變量就相當(dāng)于一個容器,對應(yīng)著計算機內(nèi)存中的某一塊存儲單元。著計算機內(nèi)存

16、中的某一塊存儲單元。變量的值具有以下兩個特點:(1)“一充即無一充即無”:即將一個新數(shù)據(jù)存放到一個變量中時,該變量中原來的值消失,變量的值變成了新值。如:執(zhí)行完語句int i; i=10; i=20;后i的值為20,而不是10。變變 量量(2)“取之不盡取之不盡”: 可將某個變量的值與程序中的其它數(shù)據(jù)進行各種運算,在運算過程中,如果沒有改變該變量的值時,那么,不管用該變量的值進行多少次運算,其值始終保持不變。 如:語句int i,j,k; i=10; j=i+10; k=i+j*5;其中,i的值可無限制地多次使用,但它的值始終保持值10,因為在程序中沒有改變變量i的值。2定義變量定義變量(變量

17、聲明變量聲明) 程序中的每一變量,都要先定義,后使用程序中的每一變量,都要先定義,后使用。定義變量一般有以下三種格式:數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符 變量名;變量名;數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符 變量名變量名=初始化值;初始化值;數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符 變量名變量名1=初始值初始值1,變量名,變量名2=初始值初始值2,;如:char a; /定義字符型變量aint i=1000; /定義整型變量i,i的初始值為1000;float a=2,b=3,c; /*定義浮點型變量 a、b、c,且a、 b的初始值分別為2、3。*/ 3定義變量的位置定義變量的位置 在程序中的不同位置采用不同的變量定義

18、方式,決定了該變量具有不同的特點。變量的定義一般可有以下三種位置:(1)在函數(shù)體內(nèi)部 在函數(shù)體內(nèi)部定義的變量稱為局部變量,這種局部變量只在進入定義它的函數(shù)體時起作用,離開該函數(shù)體后該變量就消失(被釋放),即不再起作用。因此,不同函數(shù)體內(nèi)部可以定義相同名稱的變量,而互不干擾。如: void func1() int y; y=2;void func2() int y; y=-100;(2)形式參數(shù) 當(dāng)定義一個有參函數(shù)時,函數(shù)名后面括號內(nèi)的變量,統(tǒng)稱為形式參數(shù)。如:int is_in(char *a, char b) while(*a) if (*a=b) return 1; else a+; re

19、turn 0;(3)全局變量:在所有函數(shù)體外部定義的變量,其作用范圍是整個程序,并在整個程序運行期間有效。如:int count; /定義count變量是全局變量void func1(); void func2();int main() count=10; func1();void func1() int temp; temp=count; func2(); printf(“count is %d”, count); / /輸出10void func2() int count; for(count=1;counta 變量名一般要以小寫字母開頭,且見名知義。變量名一般要以小寫字母開頭,且見名知義

20、。 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 算術(shù)運算符就是對數(shù)據(jù)進行算術(shù)運算,如:加、減、乘、除等,是在程序中使用最多的一種運算符,C+的算術(shù)運算符如表所示。 運算符和表達式運算符和表達式運算符運算符功能功能數(shù)據(jù)類型數(shù)據(jù)類型例子例子-負號數(shù)值x=-y;+加數(shù)值z=x+y;-減數(shù)值z=x-y;*乘數(shù)值z=x*y/除數(shù)值z=x/y;%求余整數(shù)z=x%y+自加數(shù)值z+或+zC+的算術(shù)運算符的算術(shù)運算符 -自減數(shù)值z-或-z(1+x)/(3*x)(2*x-3)*x+2)*x)-53.14*sqrt(r)b*b-4.0*a*c算術(shù)運算符注意事項算術(shù)運算符注意事項 算術(shù)運算符算術(shù)運算符 / 有整除和

21、一般除法兩種功能。如果兩個操作數(shù)都是整數(shù),/ 的功能就是整除,否則就是一般除法。例如: 3 / 2 =1 3 / 2.0 =1.5 3.0 / 2 =1.5 a+與+a(a-與-a)a+的功能是:a的值增1,a+的值是a增加前的值; +a的功能是: a的值增1,+a的值是a增加后的值; +a可以用作左值,即能放在賦值號的左邊。賦值運算符和賦值表達式賦值運算符和賦值表達式 賦值運算符的功能將某個數(shù)據(jù)的值賦給某個變量。格式:變量名 賦值運算符 表達式說明:(1)被賦值的目標,即賦值運算符左邊的量必須是變量,而不能是常量或表達式。(2)C+中的賦值運算符表(3)要注意區(qū)分賦值運算符“=”與數(shù)學(xué)上的“

22、等號”間的區(qū)別賦值運算符賦值運算符例子例子等價形式等價形式=x=x+yx=x+y+=x+=y+zx=x+(y+z)-=x-=y+zx=x-(y+z)*=x*=y+zx=x*(y+z)/=x/=y+zx=x/(y+z)%=x%=y+zx=x%(y+z)關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式 關(guān)系運算符就是對兩個量之間進行比較的運算符。關(guān)系運算符關(guān)系運算符含義含義例子例子10=小于或等于(x+y)*2大于x+yz=大于或等于x-y=a*b+2= =等于x+y=a+b!=不等于x-y!=0 由關(guān)系運算符將兩個表達式連接形成的運算式子是關(guān)系表達式,一個關(guān)系表達式的值是一個邏輯值,當(dāng)為真時,值為1

23、,為假時,值為0。如:假設(shè)a=1,b=20,c=3,則a10)&邏輯與(i1) & (ic)的值為1(真)。(2)在邏輯表達式的求值過程中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的值時,才執(zhí)行該運算符。 a & b & c 只有a為真時,才需要判別b的值,只有a和b的值都為真時才需要判別c的值。如:int i=10;則表達式i & (i=0) & (+i)的值為0(假),該表達式運算結(jié)束后,變量i的值為0,而不是1。 a | b|c 只要a為真,就不必須判斷b和c;只有a為假,才判別b;a和b 都為假才判別c

24、。如:int i=1,j; 則表達式i+|i+|i+的值為1(真),運算結(jié)束后,變量i的值為2,而不是4。int n=3,m=6;if (n4) & (m+10)cout“m should not changed.n”;cout“m= “mendl; 對于數(shù)學(xué)上的表示多個數(shù)據(jù)間進行比較的表達式,在C+中要拆寫成多個條件并用邏輯運算符連接形成一個邏輯表達式。如:在數(shù)學(xué)上,要表示一個變量a的值處于-1和-9之間時,可以用-9a-9) & (a-1),而不能寫成-9a-1。因為,假設(shè)變量a當(dāng)前的值為-5,它的值確實處在-1和-9之間,但在C+語言中求-9a-1時,從左向右進行計算,先

25、計算-9a,得1 (真),此時該表達式可簡化為1-9) & (ab?a:b的值為4條件表達式可以嵌套:xy?”great than”:x= =y?”equal to”:”less than”它等價于:(xy)?”great than”:(x= =y)?”equal to”:”less than”)在條件表達式中,如果后面兩個表達式的值類型相同,均為左值,則該條件表達式的值為左值表達式。int x=5;long a,b;(x?a:b)=1;(x?x:a)=2; /error:x和a不同類型(x= =2?1:a)=3; /error:1非左值位運算符位運算符1位運算符及其運算規(guī)則位運算符及

26、其運算規(guī)則 所謂位運算符是指能進行二進制位運算的運算符。C+提供的位運算符:運算符含義例子&按位與i&128|按位或j|64按位異或j12按位取反j按位左移i按位右移j2位運算的運算規(guī)則為:(1)按位與&:兩個運算量相應(yīng)的位都是1,則該位的結(jié)果值為1,否則為0;(2)按位或|:兩個運算量相應(yīng)的位只要有一個是1,則該位的結(jié)果值為1,否則為0;(3)按位異或:兩個運算量相應(yīng)的位不同,則該位的結(jié)果值為1,否則為0;(4)按位取反:將運算量的每一位取反。(5)按位左移:將操作數(shù)中的每一位向右移動指定的位數(shù),移出的位被舍棄,空出的位補0或補符號位。例子如:a=5,b=6,則:a

27、00000101 00000101 00000101b &00000110 00000110 00000110 00000110 00000100 00000111 00000011 11111001即:a&b=4,a|b=7,ab=3,b=249。 2復(fù)合位運算符復(fù)合位運算符 位運算符與賦值運算符結(jié)合可以形成復(fù)合位運算符。運算符例子等價形式&=x&=y+zx=x&(y+z)|=x|=x+2x=x|(x+2)=x=yx=xy=x=y+zx=x=x=y+zx=x(y+z)逗號運算符逗號運算符 逗號運算符的運算優(yōu)先級是最低的。一般形式為:表達式1,表達式2,

28、表達式N 在計算逗號表達式的值時,按從左至右的順序依次分別計算各個表達式的值,而整個逗號表達式的值和類型是由最右邊的表達式?jīng)Q定。 如:有語句int a=3,b=4;則表達式a+,b+,a+b的值為9。 再如:設(shè)有int i;則表達式i=1,i+=2?i+1:i+4的值為6。該運算符的功能是將某一數(shù)據(jù)從一種數(shù)據(jù)類型向另一種數(shù)據(jù)類型進行轉(zhuǎn)換。其使用的一般形式:1.數(shù)據(jù)類型標識符 (表達式)2.(數(shù)據(jù)類型標識符)表達式如:int i=2;float a,b;a=float(i);/將變量i的類型強制轉(zhuǎn)換為浮點型, 并將其值賦給變量ab=(float)i;/將變量i的類型強制轉(zhuǎn)換為浮點型, 并將其值賦

29、給變量b強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符每個運算符都有自己優(yōu)先級和結(jié)合性。當(dāng)一個表每個運算符都有自己優(yōu)先級和結(jié)合性。當(dāng)一個表達式中包含多個運算符時,要確定運算的結(jié)果,達式中包含多個運算符時,要確定運算的結(jié)果,必須首先確定運算的先后順序,即運算符的優(yōu)必須首先確定運算的先后順序,即運算符的優(yōu)先級和結(jié)合性。先級和結(jié)合性。C+中運算符的優(yōu)先級和結(jié)合中運算符的優(yōu)先級和結(jié)合性如表性如表2.11所示。所示。 運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級與結(jié)合性優(yōu)先級運算符結(jié)合性1() : - . .* -*自左至右2! + - + - * & (類型) sizeof new delete自右至左3* /

30、 %自左至右4+ -自左至右5自左至右6 =自左至右7= !=自左至右8&自左至右9自左至右10|自左至右11&自左至右12|自左至右13?:自右至左14= += -= *= /= %= = &= = |=自右至左15,自左至右C+中運算符的優(yōu)先級和結(jié)合性中運算符的優(yōu)先級和結(jié)合性 輸出流對象輸出數(shù)據(jù)的語句格式為: cout數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n;說明:(1)cout是系統(tǒng)預(yù)定義的一個標準輸出設(shè)備(一般代表顯示器);“”是輸出操作符,用于向cout輸出流中插入數(shù)據(jù)。(2)cout的作用是向標準輸出設(shè)備上輸出數(shù)據(jù),被輸出的數(shù)據(jù)可以是常量、已有值的變量或是一個表達式。數(shù)據(jù)的輸出數(shù)

31、據(jù)的輸出cout(3)可以在cout輸出流中插入C+中的轉(zhuǎn)義字符。如:cout “Input the value of a:n;couta; 表示輸出完字符串Input the value of a:后,在下一行輸出變量a的值。(4)可以將多個被輸出的數(shù)據(jù)寫在一個cout中,各輸出項間用“”操作符隔開即可,但要注意cout首先按從右向左的順序從右向左的順序計算出各輸出項的值,然后再輸出各項的值。如:cout value of a:a value of b:b The result is : sqrt(a*a+b*b);再 如 : 設(shè) 變 量 i 的 值 為 1 0 , 則couti,i+,i+

32、;的輸出結(jié)果為:的輸出結(jié)果為:12,11,10(5)一個cout語句也可拆成若干行書寫,但注意語句結(jié)束符“;”只能寫在最后一行上。如:對于上面的語句也可寫成如下形式: cout value of a: /注意行末無分號 a value of b: b The result is : sqrt(a*a+b*b); /在此處書寫分號(6)在cout中,實現(xiàn)輸出數(shù)據(jù)換行功能的方法:既可使用轉(zhuǎn)義字符“n”,也可使用表示行結(jié)束的流操作endl。如:coutThis is first Line.nThis is second line. ;上面語句可等價地寫為:coutThis is first Line

33、.endlThis is second line. ;(7)在cout中還可以使用流控制符控制數(shù)據(jù)的輸出格式。I/O流的常用控制符控制符功能dec十進制數(shù)輸出hex十六進制數(shù)輸出oct八進制數(shù)輸出setfill(c)在給定的輸出域?qū)挾葍?nèi)填充字符csetprecision(n)設(shè)顯示小數(shù)精度為n位setw(n)設(shè)域?qū)挒閚個字符setiosflags(ios:fixed)固定的浮點顯示setiosflags(ios:scientific)指數(shù)顯示setiosflags(ios:left)左對齊setiosflags(ios:right)右對齊setiosflags(ios:skipws)忽略前導(dǎo)空

34、白setiosflags(ios:uppercase)十六進制數(shù)大寫輸出setiosflags(ios:lowercase)十六進制數(shù)小寫輸出setiosflags(ios:showbase)按十六八進制輸出數(shù)據(jù)時,前面顯示前導(dǎo)符0 x; 設(shè)置域?qū)挘核^域?qū)捑褪潜惠敵鰯?shù)據(jù)所占的輸出寬度(單位是字符數(shù))。設(shè)置域?qū)捒梢允褂昧骺刂品鹲etw(n)和cout的方法cout.width(n) 其中n為正整數(shù),表示域?qū)?。但是?cout.width(n)和setw(n)二者都只對下一個被輸出的數(shù)據(jù)有作用,若一個輸出語句內(nèi)有多個被輸出的數(shù)據(jù),而要保持一定格式域?qū)挄r,需要在每一輸出數(shù)據(jù)前加上需要在每一輸出數(shù)據(jù)

35、前加上cout.width(n)或或setw(n)。 此外,當(dāng)參數(shù)n的值比實際被輸出數(shù)據(jù)的寬度大時,則在給定的域?qū)拑?nèi),數(shù)據(jù)靠右輸出,不足部分自動填充空格符;若被輸出數(shù)據(jù)的實際寬度比n值大時,則數(shù)據(jù)所占的實際位數(shù)輸出數(shù)據(jù),設(shè)置域?qū)挼膮?shù)n不再起作用。例例 cout流控制符setw的使用。#include using namespace std;int main() int a=21,b=999; coutsetw(3)asetw(4)asetw(5)aendl; cout.width(3); coutb; cout.width(4); coutb; return 0;其輸出結(jié)果是:21 21 2

36、1 /程序中第一個cout的輸 出結(jié)果999999 設(shè)置域內(nèi)填充字符:在默認情況下,當(dāng)被輸出的數(shù)據(jù)未占滿域?qū)挄r,會自動在域內(nèi)靠左邊填充相應(yīng)個數(shù)的空格符。但我們也可以設(shè)置在域內(nèi)填充其他的字符,方法是利用cout的fill方法cout.fill(c)或setfill(c)。 cout.fill(c)上和 setfill(c)可以對所有被輸出的數(shù)據(jù)起作用。例例 在例2-2的基礎(chǔ)上增加域內(nèi)填充字符的功能。#include using namespace std;int main() int a=21,b=999; cout.fill(#);/設(shè)置域內(nèi)填充字符為#字符 coutsetw(3)asetw(

37、4)a setw(5)aendl; coutsetw(3)bsetw(4) bsetw(5)bendl; cout.fill(%);/將域內(nèi)填充字符改為%字符coutsetw(3)a+bsetw(4) a+bsetw(5)a+bendl; return 0;其輸出結(jié)果是:#21#21#21 /程序中第一個cout的輸出結(jié)果, 未占滿域?qū)挼牟糠痔畛?字符。999#999#999 /程序中第二個cout的輸出結(jié)果10201020%1020 /程序中第三個cout的輸出結(jié)果, 未占滿域?qū)挼牟糠痔畛?字符。 設(shè)置輸出數(shù)據(jù)的進位計數(shù)制:在默認情況下,被輸出的數(shù)據(jù)按十進制格式輸出。但可以使用流控制符hex

38、和oct控制數(shù)據(jù)的輸出格式為十六進制和八進制,一旦設(shè)置成某種進位計數(shù)制后,數(shù)據(jù)的輸出就以該種數(shù)制為主,可利用流控制符dec將數(shù)制重新成十進制。int a=21,b=999;coutsetw(3)setfill(#)hexaendl; coutsetw(3)bendl;coutsetw(3)setfill(#)octbendl; coutsetw(3)bsetw(4) bsetw(5)bendl;coutsetw(3)setfill(#)decaendl;coutsetw(3)bsetw(4) bsetw(5)bendl;程序的輸出結(jié)果為:#15 /以十六進制格式輸出數(shù)據(jù)3e7#25 /以八進制格式輸出數(shù)據(jù)1747#21 /以十進制格式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論