《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)
《《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)》由會員分享,可在線閱讀,更多相關(guān)《《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第一章C++基礎(chǔ) endl換行并刷新輸出流 setw(n)設(shè)置字段位數(shù)為n hex,oct,dec十六進(jìn)制,八進(jìn)制,十進(jìn)制表示 setfill定義填充字符 setprecision定義浮點(diǎn)數(shù)的精度 left,right左對齊,右對齊 showpoint強(qiáng)制顯示小數(shù)點(diǎn)以及全部尾部 0 C++!過給常量命名的方式定義常量: const<^據(jù)類型名x常量名 >=<表達(dá)式> 用const定義的標(biāo)識符常量時,一定要對其初始化。在說明時進(jìn)行初始化是對這 種常量置值的唯一方法,不能用賦值運(yùn)算符對這種常量進(jìn)行賦值。 函數(shù)聲明的一般形式為 函數(shù)類型函數(shù)名(參數(shù)表) 函數(shù)模板的定義 t
2、emplatevtypename 或 class T> 函數(shù)定義 例子:templatevtypename T> T max(T a,T b){ return(a>b)? a:b; } 定義函數(shù)模板時可以使用多個類型參數(shù),每個類型參數(shù)前面只需加上關(guān)鍵字 type name或class用逗號分隔: template vclass T1, class T2, class T3> 例子:templatevclass T1, class T2> T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; 有默認(rèn)參數(shù)的函數(shù):實(shí)參與形參的結(jié)合是從左至右進(jìn)
3、行的, 因此指定默認(rèn)值的參 數(shù)必須放在形參列表中的最右端 引用 定義對變量起另外一個名字(別名alias),這個名字稱為該變量的引用 <類型> &<引用變量名 > = <原變量名>; 其中原變量名必須是一個已定義過的變量。如: int max ; int &refmax=max; refmax并沒有重新在內(nèi)存中開辟單元,只是引用 max的單元。max與refmax在 內(nèi)存中占用同一地址,即同一地址兩個名字。 對引用類型的變量,說明以下幾點(diǎn): 1、 引用在定義的時候要初始化 2、 對引用的操作就是對被引用的變量的操作。 3、 引用類型變量的初始化值不能是一個常數(shù)。 4、
4、一旦引用被聲明,它就不能再指向其它的變量。 5、 對引用的初始化,可以用一個變量名,也可以用另一個引用。 6引用同變量一樣有地址,可以對其地址進(jìn)行操作,即將其地址賦給一指針。 當(dāng)&m的前面有類型符時(如int &m),它必然是對引用的聲明;如果前面無類 型符(如cout?&m),則是取變量的地址。 7、對常量(用const聲明)的引用使用如下方式: int i=5; const int &a=i; 內(nèi)聯(lián)函數(shù)定義的一般格式為: inline <函數(shù)值類型 > <函數(shù)名>(<參數(shù)表>) { <函數(shù)體> } 作用域運(yùn)算符 ::a表示全局作用域中的變量a。注意:不能用::訪問
5、函數(shù)中的局部變量 new運(yùn)算從堆中分配一塊與 <類型〉相適應(yīng)的大小為 <元素個數(shù)〉的數(shù)組存儲空間, 若分配成功,將這塊存儲空間的起始地址存入 <指針變量名 >,否則置 <指針變量 名〉的值為NULL(空指針值,即0)。new的使用格式為: <指針變量名>=new <類型 >[<元素個數(shù)>]; delete運(yùn)算符用來釋放<指針變量名 >指向的動態(tài)存儲空間。使用格式如下: delete <指針變量名 > 或 delete]] <指針變量名> 第2章面向?qū)ο蠡靖拍? 面向過程編程與面向?qū)ο缶幊痰膮^(qū)別: 面向過程編程先確定算法,再確定數(shù)據(jù)結(jié)構(gòu); 面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。
6、 類定義: class類名> { <訪問控制符>: V成員函數(shù)的聲明> V訪問控制符>: V數(shù)據(jù)成員的聲明> }; V成員函數(shù)的實(shí)現(xiàn)> 若在類體外實(shí)現(xiàn),則需要使用作用域運(yùn)算符“::”,用它來標(biāo)識某個成員函數(shù)是屬 于哪個類的,其定義格式如下: V函數(shù)值類型> V類名>::V成員函數(shù)名>(<參數(shù)表>) { V函數(shù)體> } 類外訪問對象中的成員可以有 3種方法: 通過對象名和成員運(yùn)算符訪問對象中的成員。 V對象名〉.V公有成員> 通過指向?qū)ο蟮闹羔樧兞吭L問對象中的成員。 V對象指針名> -> V公有成員> 通過對象的引用訪問對象中的成員 析構(gòu)函數(shù)其定義格式如
7、下: V類名>::~類名>() { V函數(shù)體> } 在一般情況下,調(diào)用構(gòu)造函數(shù)與聲明對象的順序相同, 而調(diào)用析構(gòu)函數(shù)的次序正 好與創(chuàng)建對象的順序相反。 三種構(gòu)造函數(shù) Box(); //無參構(gòu)造函數(shù) Box(int h,int w ,int len) :height(h),width(w),length(le n){} //帶參構(gòu)造函數(shù) 復(fù)制構(gòu)造函數(shù)定義 V類名>(<參數(shù)表>); <類名>(const類名〉& V對象名>) Box(const Box & b);復(fù)制構(gòu)造函數(shù) 復(fù)制構(gòu)造函數(shù)只有一個參數(shù),并且是對同類對象的引用。 靜態(tài)成員是類的所有對象共享的成員,而
8、不是某個對象的成員,它在對象中不占 存儲空間,是屬于整個類的成員。 靜態(tài)成員定義格式如下: static <靜態(tài)成員的定義>; 不能用參數(shù)初始化表對靜態(tài)數(shù)據(jù)成員初始化, 也不能在構(gòu)造函數(shù)體內(nèi)初始化,靜 態(tài)數(shù)據(jù)成員只能在類體外進(jìn)行初始化。 靜態(tài)數(shù)據(jù)成員初始化格式如下: <數(shù)據(jù)類型 > <類名 >::<靜態(tài)數(shù)據(jù)成員名 >=<值>; 在類的成員函數(shù)中可以直接訪問該類的靜態(tài)數(shù)據(jù)成員,而不必使用成員訪問運(yùn)算 符或類名限定修飾符。 在類外必須使用成員訪問運(yùn)算符或類名限定修飾符訪問公共靜態(tài)數(shù)據(jù)成員。 <對象名〉.<靜態(tài)成員> V類名>::<靜態(tài)成員> 靜態(tài)成員函數(shù)就是使用static關(guān)
9、鍵字聲明的成員函數(shù)。 靜態(tài)成員函數(shù)可以直接訪問該類的靜態(tài)成員,但不能直接訪問類中的非靜態(tài)成員。 第3章詳解對象 對象指針就是用于存放對象數(shù)據(jù)起始地址的變量。 聲明對象指針的一般格式為: <類名> *<對象指針名>; 對象指針的初始化一般格式為: <數(shù)據(jù)類型> *<對象指針名>=&<對象名>; <對象指針名>=&<寸象名>; 通過指針訪問對象成員一般格式如下: V對象指針名 > -> <公有成員> boxp->volumn(); (*<對象指針名>)■<公有成員> (*boxp).volumn(); this指針是一個特殊的隱含指針,它隱含于每一個成員函數(shù)(靜態(tài)成員函
10、數(shù)除外) 中,也就是說,每個成員函數(shù)都有一個this指針參數(shù)。 this指針指向調(diào)用該函數(shù)的對象,即this指針的值是當(dāng)前被調(diào)用的成員函數(shù)所在 的對象的起始地址。 復(fù)制構(gòu)造函數(shù)中隱含使用this指針: TAdd(const TAdd & p) { this->x=p.x; this->y=p.y; coutvv"copy constructor."vvendl; } 同樣也可以使用*this來標(biāo)識調(diào)用該成員函數(shù)的當(dāng)前對象 x this->x (*this).x this指針是一個con st指針,成員函數(shù)不能對其進(jìn)行賦值。 靜態(tài)成員中不能訪問this指針,因?yàn)殪o態(tài)成員函數(shù)
11、不從屬于任何對象。 指向非靜態(tài)數(shù)據(jù)成員的指針一般形式為: 數(shù)據(jù)類型名 *指針變量名; 定義指向公有成員函數(shù)的指針變量的一般形式為 : 數(shù)據(jù)類型名(類名::*指針變量名)(參數(shù)列表); 使指針變量指向一個公有成員函數(shù)的一般形式為: 指針變量名=&類名::成員函數(shù)名 常量定義格式如下: const <數(shù)據(jù)類型名 > <常量名 >=<表達(dá)式>; 常對象是其數(shù)據(jù)成員值在對象的整個生存期間內(nèi)不能被改變的對象。 const <類名 > <對象名〉(v初始化值>); <類名> const對象名〉(v初始化值>); 常成員函數(shù) 通過常成員函數(shù)來引用本類中的常數(shù)據(jù)成員。 <數(shù)據(jù)類型
12、><函數(shù)名>(<參數(shù)表>)const; const成員和非const成員之間 的調(diào)用關(guān)系 數(shù)據(jù)成員 非Gonst成員函數(shù) 8門航成員函數(shù) 非const數(shù)據(jù)成員 可以引用,也可 以改變值 可以引用,但不 可以改變值 const數(shù)據(jù)成員 可以引用,但不 可以改變值 可以引用,但不 可以改變值 const對象的數(shù)據(jù) 成員 不允許引用和改 變值 可以引用,但不 可以改變值 聲明一維對象數(shù)組的一般格式為: <類名 > <數(shù)組名>[<下標(biāo)表達(dá)式>] 第4章運(yùn)算符重載 重載為類的成員函數(shù)格式如下: <類名> operator運(yùn)算符 >(<參數(shù)表>) {函數(shù)體}
13、A operator + (A &); ++為前置運(yùn)算符時,它的運(yùn)算符重載函數(shù)的一般格式為: <type> operator ++() ++為后置運(yùn)算符時,它的運(yùn)算符重載函數(shù)的一般格式為: <type> operator ++(int) A 込b; A operator ++( ){….} b=a-H-; A operator -H-(int){ } 運(yùn)算符重載函數(shù)不能定義為靜態(tài)的成員函數(shù),因?yàn)殪o態(tài)的成員函數(shù)中沒有 this 指針。 友元聲明以關(guān)鍵字friend開始,只能出現(xiàn)在被訪問類的定義中。具體格式 如下: friend <函數(shù)值類型 > <函數(shù)名>(<參數(shù)表>);
14、 friend class 類名 >; 友元函數(shù)可以訪問該類中的所有成員(公有的、私有的和保護(hù)的) 通常使用友元函數(shù)來取對象中的數(shù)據(jù)成員值, 而不修改對象中的成員值,保證數(shù) 據(jù)安全。 class A [ class B{ void ftin( B &); }; 既是類A的成員函數(shù) friend void^:fun( B &); J反是知無芫甌 重載為類的友元函數(shù)語法形式 friend <函數(shù)值類型> operator <運(yùn)算符>(<參數(shù)表>) {<函數(shù)體>;} ++為前置運(yùn)算符時,它的運(yùn)算符重載函數(shù)的一般格式為: A operator ++(A
15、&a) ++為后置運(yùn)算符時,它的運(yùn)算符重載函數(shù)的一般格式為: A 跖 b; " b=++a; A operator ++(A a ){ ?…} b=a++; A operator -H-(A a, int){ } A operator ++(A &a, int) 重載提取運(yùn)算符的一般格式為: friend istream & operater >>(istream &, ClassName &); istream & operater >>(istream &is, ClassName &f){} 重載輸出(插入)運(yùn)算符的一般格式為: friend ostream
16、& operater >>(ostream &, ClassName &); ostream & operater >>(ostream &is, ClassName &f){} 重載類型轉(zhuǎn)換運(yùn)算符函數(shù)格式: operator〈返回基本類型名〉() return〈基本類型值〉 } 類類型轉(zhuǎn)換函數(shù)只能是成員函數(shù),不能是友元函數(shù)。轉(zhuǎn)換函數(shù)的操作數(shù)是對象
17、 第5章繼承與派生 派生是指由基類創(chuàng)建新類的過程。 class A { int i; //基類成員}; class B:public A //派生了 B, B 繼承了 A, 〃B自動擁有A的成員 {int j; //定義派生類的新成員}; 派生類的定義格式如下: class派生類名 >:<繼承方式 > <基類名> { <派生類新定義成員>}; 派生類繼承了基類的全部數(shù)據(jù)成員和除了構(gòu)造、析構(gòu)函數(shù)之外的全部成員函數(shù), 它們在派生類中的訪問屬性由繼承方式控制。 三種繼承方式下派生類中基類成員的訪問控制權(quán)限 基美、繼承 成員 公有繼承 私有繼承 保護(hù)繼承 公有成員
18、公有 私有 保護(hù) 秋有成員 派生類成員不 可訪問 派生類成員不 可訪問 派生類成員 不可訪問 保護(hù)成員 r保護(hù) 私有 保護(hù)1 無論是哪種繼承方式,基類的私有成員在派生類中都是不可被訪問的。 只能通過 基類的成員函數(shù)訪問基類的私有數(shù)據(jù)成員。 解決的辦法是通過成員初始化表來完成,在成員初始化表中可以顯式調(diào)用基類構(gòu) 造函數(shù)。 V派生類名 >(<總參數(shù)表 >):<基類名〉(V參數(shù)表1>),V對象成員名>(<參數(shù)表2>) { V派生類數(shù)據(jù)成員的初始化> }; 構(gòu)造函數(shù)調(diào)用順序?yàn)椋夯惖臉?gòu)造函數(shù)一對象成員構(gòu)造函數(shù)一派生類的構(gòu)造函 數(shù)。 析構(gòu)函數(shù)調(diào)用順序剛好相反。
19、 當(dāng)基類中沒有顯式定義構(gòu)造函數(shù), 或定義了無參構(gòu)造函數(shù)時,派生類構(gòu)造函數(shù)的 初始化表可以省略對基類構(gòu)造函數(shù)的調(diào)用,而采用 隱含調(diào)用。 當(dāng)基類的構(gòu)造函數(shù)使用一個或多個參數(shù)時,派生類必須定義構(gòu)造函數(shù),提供將參 數(shù)傳遞給基類構(gòu)造函數(shù)的途徑。這時,派生類構(gòu)造函數(shù)的函數(shù)體可能為空,僅起 到參數(shù)傳遞作用。 如果在基類中既定義了無參構(gòu)造函數(shù),又定義了帶參構(gòu)造函數(shù),則在定義派生類 構(gòu)造函數(shù)時,既可以包含基類構(gòu)造函數(shù)和參數(shù),也可以不包含基類構(gòu)造函數(shù)。 如果在一個派生類中要訪問基類中的私有成員,可以將這個派生類聲明為基類 的友元。 Base { friend class Derive; i-?? ?
20、? Derive:public Base { 直接使用罪中的私有成員 ■b 友元關(guān)系是不能繼承的。B類是A類的友元,C類是B類的派生類,則C類和A 類之間沒有任何友元關(guān)系,除非 C類聲明A類是友元。 多繼承派生類的定義 class 派生類名 >:<繼承方式> <基類名1>,…,<繼承方式 > <基類名n> { <派生類新定義成員>}; 多繼承派生類的構(gòu)造函數(shù) V派生類名 >(<總參數(shù)表>):<基類名1>(<參數(shù)表1>),…,< 基類名n>(V參數(shù)表n>) { <派生類數(shù)據(jù)成員的初始化> }; <總參數(shù)表〉必須包含完成所有基類初始化所需的參數(shù) 構(gòu)造函數(shù)調(diào)用順序是:先調(diào)用
21、所有基類的構(gòu)造函數(shù),再調(diào)用對象成員類構(gòu)造函數(shù), 最后調(diào)用派生類的構(gòu)造函數(shù)。 處于同一層次的各基類構(gòu)造函數(shù)的調(diào)用順序取決于 定義派生類時所指定的基類 順序,與派生類構(gòu)造函數(shù)中所定義的成員初始化列表順序無關(guān)。 如果有多個成員類對象,則構(gòu)造函數(shù)的調(diào)用順序是對象在類中被聲明的順序,而 不是它們出現(xiàn)在成員初始化表中的順序。 析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)的調(diào)用順序相反。 虛基類 虛基類的定義格式為: class派生類名>:virtual <繼承方式〉<共同基類名>; 【說明】引進(jìn)虛基類后,派生類對象中只存在一個虛基類成員的副本。 虛基類的初始化與一般多繼承的初始化在語法上相同,但構(gòu)造函數(shù)
22、的調(diào)用順序有 所不同,規(guī)則如下: 先調(diào)用虛基類的構(gòu)造函數(shù),再調(diào)用 非虛基類的構(gòu)造函數(shù)。 若同一層次中包含多個虛基類,其調(diào)用順序?yàn)?定義時的順序。 若虛基類由非虛基類派生而來,則仍按先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類構(gòu)造 函數(shù)的順序。 如果在虛基類中定義了帶參數(shù)的構(gòu)造函數(shù),則要在其所有派生類(包括直接派生 類或間接派生類)中,通過構(gòu)造函數(shù)的初始化表對虛基類進(jìn)行初始化。 dsss A class C:virtual public A { A(int i){}…}; { c(int n):A(n)O…}; cIbss B:virtual public A class D:public p
23、ublic C { B(int n):A(n){}…}; { D(int n):A(n)fB(n\C(n){}.., }; 第6章多態(tài)性與虛函數(shù) 類型兼容規(guī)則 類型兼容規(guī)則是指在需要基類對象的任何地方, 都可以使用公有派生類的對象來 替代。 類型兼容規(guī)則中所指的替代包括以下情況: 派生類的對象可以賦值給基類的對象。 派生類的對象可以初始化基類的引用。 派生類的對象的地址可以賦值給基類的指針變量。 在替代之后,派生類對象就可以作為基類的對象使用, 但只能訪問從基類繼承的 成員。 只能用派生類對象對其基類對象賦值,而不能用基類對象對其派生類對象賦值。 同一基類的不同派生類對
24、象之間也不能賦值。 虛函數(shù) 虛函數(shù)就是在基類中被關(guān)鍵字 virtual說明、并在一個或多個派生類中被重新定義 的成員函數(shù)。 聲明虛函數(shù)的格式如下: virtual <函數(shù)值類型 > <函數(shù)名>(<參數(shù)表>); 在派生類中重新定義虛函數(shù)時,其函數(shù)原型包括返回類型、函數(shù)名、參數(shù)個數(shù)、 類型和順序,都必須與 基類中的原型相同。 一個函數(shù)一旦被聲明為虛函數(shù),則無論聲明它的類被繼承了多少層, 在每一層派 生類中該函數(shù)都保持虛函數(shù)特性。 因此,在派生類中重新定義該函數(shù)時, 可以省 略關(guān)鍵字virtual。 實(shí)現(xiàn)動態(tài)的多態(tài)性時,必須使用基類類型的指針變量或?qū)ο笠?,并使其指向?同的派生類對象
25、,并通過調(diào)用指針或引用所指向的虛函數(shù)才能實(shí)現(xiàn)動態(tài)的多態(tài)性。 可將類簇中具有共性的成員函數(shù)聲明為虛函數(shù), 而具有個性的函數(shù)沒有必要聲明 為虛函數(shù)。但是下面的情況例外: 靜態(tài)成員函數(shù)不能聲明為虛函數(shù)。 構(gòu)造函數(shù)不能是虛函數(shù)。 內(nèi)聯(lián)成員函數(shù)不能聲明為虛函數(shù)。 析構(gòu)函數(shù)可以是虛函數(shù)。 虛析構(gòu)函數(shù) 虛析構(gòu)函數(shù)的聲明格式如下: virtual ~<類名 >(); 如果一個類的析構(gòu)函數(shù)是虛函數(shù),那么,由它派生的所有子類的析構(gòu)函數(shù)也是 虛函數(shù)。 純虛函數(shù)用virtual聲明,沒有任何實(shí)現(xiàn)、必須由派生類覆蓋該函數(shù)提供實(shí)現(xiàn) 純虛函數(shù)的聲明格式為: virtual <函數(shù)值類型 > <函數(shù)
26、名>(<參數(shù)表>)=0; 包含一個或多個純虛函數(shù)的類稱為抽象類。 如果派生類沒有實(shí)現(xiàn)基類中的所有純虛函數(shù),派生類也是 抽象類。 抽象類無法實(shí)例化,即不能創(chuàng)建抽象類的對象。 第7章輸入輸出 iostream:l/O流類庫的最主要的頭文件,包含了對輸入輸出流進(jìn)行操作所需的基 本信息,還包括 cir、cout、cerr和clog共4個流對象。 fstream用于用戶管理的文件的I/O操作。 strstream用于字符串流I/O。 stdiostream用于混合使用 C和C++勺I/O操作。 iomanip使用格式化I/O時應(yīng)包含此頭文件。 用setf函數(shù)設(shè)置狀態(tài)標(biāo)志, 其一般格式
27、如下: long ios::setf(long flags) 清除狀態(tài)標(biāo)志 用unsetf函數(shù)清除狀態(tài)標(biāo)志,其一般格式如下: long ios::unsetf(long flags) 用函數(shù)flags取狀態(tài)標(biāo)志有兩種形式,其格式分別如下: long ios::flags() //返回與流相關(guān)的當(dāng)前狀態(tài)標(biāo)志值 long ios::flags(long flag) //將流的狀態(tài)標(biāo)志值設(shè)置為flag,并返回設(shè)置前的狀態(tài)標(biāo)志值。 以上三組函數(shù)必須用流類對象(cin或cout)來調(diào)用,其格式如下: <流對象名>■<函數(shù)名>(ios::<^態(tài)標(biāo)志>) cout.setf(ios:
28、:showpos); cout.setf(ios::scientific); cout.setf(ios::showpos| ios::scientific); 設(shè)置輸出寬度函數(shù)有兩種形式,其格式分別如下: int ios::width(int len) int ios::width() 第一種形式是設(shè)置輸出寬度,并返回原來的輸出寬度; 第二種形式是返回當(dāng)前輸出寬度, 默認(rèn)輸出寬度為0。只對其后的第一個輸出項(xiàng) 有效。 填充字符的作用是當(dāng)輸出值不滿輸出寬度時用填充字符來填充, 默認(rèn)填充字符為 空格。它與width()函數(shù)配合使用,否則沒有意義。 設(shè)置填充字符函數(shù)有兩種形式,
29、其格式分別如下: char ios::fill(char ch) char ios::fill() 第一種形式是重新設(shè)置填充字符,并返回設(shè)置前的填充字符; 第二種形式是返回當(dāng)前的填充字符。 設(shè)置浮點(diǎn)數(shù)輸出精度有兩種形式,其格式分別如下: int ios::precision(int p) int ios::precision() 第一種形式是重新設(shè)置輸出精度,并返回設(shè)置前的輸出精度; 第二種形式是返回當(dāng)前的輸出精度。默認(rèn)輸出精度為 6 用get函數(shù)讀入一個字符 (1) 不帶參數(shù)的get函數(shù) cin.get(用來從指定的輸入流中提取一個字符 (包括空白字符),函數(shù)的返回值
30、就 是讀入的字符。 若遇到輸入流中的文件結(jié)束符,則函數(shù)返回文件結(jié)束標(biāo)志 EOF (2) 有一個參數(shù)的get函數(shù) cin.get(ch用來從輸入流中讀取一個字符,賦給字符變量 ch。 讀取成功返回非0值(真),如失敗(遇文件結(jié)束符)則函數(shù)返回 0值(假)。 3)有三個參數(shù)的get函數(shù) cin.get字符數(shù)組/字符指針,字符個數(shù)n,終止字符) 從輸入流中讀取n-1個字符,賦給指定的字符數(shù)組(或字符指針指向的數(shù)組)。 如果在讀取n-1個字符之前遇到指定的終止字符,則提前讀取結(jié)束。 如果讀取成功返回非0值(真),如失?。ㄓ鑫募Y(jié)束符)則函數(shù)返回0值(假)。 用getline函數(shù)讀
31、入一行字符 cin.getline字符數(shù)組(或字符指針),字符個數(shù)n,終止字符) 從輸入流中讀取一行字符,其用法與帶 3個參數(shù)的get函數(shù)類似。 eof函數(shù) 無參函數(shù),表示文件結(jié)束。 從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),返回非零值(真), 否則為0 (假) 0 while (! cin.eof ()) peek函數(shù) 無參函數(shù),表示“觀察”,觀測下一個字符。 返回值是當(dāng)前指針指向的當(dāng)前字符,但只是觀測,指針仍停留在當(dāng)前位置,并 不后移。 如果要訪問的字符是文件結(jié)束符,則函數(shù)值是 EOF0 c=cin.peek(); putback 函數(shù) 將前面用get
32、或getline函數(shù)從輸入流中讀取的字符 ch返回到輸入流,插入到當(dāng) 前指針位置,以供后面讀取。 控制符不屬于任何類成員,定義在iomanip頭文件中 設(shè)置輸入/輸出寬度setw(int) 用整型參數(shù)來制定輸入/輸出域的寬度。使用時只對其后一項(xiàng)輸入/輸出有效。 當(dāng)用于輸出時,若實(shí)際寬度小于設(shè)置寬度時,數(shù)據(jù)向右對齊,反之則按數(shù)據(jù)的 實(shí)際寬度輸出。 當(dāng)用于輸入時,若輸入的數(shù)據(jù)寬度超過設(shè)置寬度時,超出的數(shù)據(jù)部分被截?cái)喽?被作為下一項(xiàng)輸入內(nèi)容。 設(shè)置輸出填充字符setfill(char) 與ios::fill相同,常與setw(int)聯(lián)合使用,從而向不滿設(shè)置輸出寬度的空間填入 指定的
33、字符,不設(shè)置則填空格。 設(shè)置后直至下一次設(shè)置前一直有效。 參數(shù)可以是字符常量或字符變量。 設(shè)置輸出精度setprecision(int) 指明輸出實(shí)數(shù)的有效位數(shù)。 參數(shù)為0時,按默認(rèn)有效位數(shù)6輸出。 在以fixed形式和scientific形式輸出時參數(shù)為小數(shù)位數(shù)。 setiosflags(ios::fixe用定點(diǎn)方式表示實(shí)數(shù)。 setiosflags(ios::scientif用科學(xué)記數(shù)法方式表示實(shí)數(shù)。 如果setprecision(n與 setiosflags(ios::fixe合用,可以控制小數(shù)點(diǎn)右邊的數(shù)字個 數(shù)。 女口果 setprecision(n與 setios
34、flags(ios::scientif合合用,可以控制科學(xué)記數(shù)法中尾數(shù) 的小數(shù)位數(shù)。 setiosflags(ios::lef輸出數(shù)據(jù)左對齊 setiosflags(ios::rigl輸出數(shù)據(jù)右對齊 設(shè)置輸入/輸出整型數(shù)數(shù)制dec、hex和oct。 控制換行的控制符endl 代表輸出單字符“ \0”的控制符ends open()函數(shù)的原型在fstream中定義。其原型為: void open(char *filename,int mod,int access); 其中第一個參數(shù)是用來傳遞文件名; 第二個參數(shù)的值決定文件的使用方式; 第三 個參數(shù)的值決定文件的訪問方式。 對于ifstream 流類,mod 的值為ios::in;對于 ofstream 流類,mod的值為ios::out 歡迎下載 學(xué)習(xí)好資料
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工重大危險(xiǎn)源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會知識問答
- 8 各種煤礦安全考試試題
- 9 危險(xiǎn)化學(xué)品經(jīng)營單位安全生產(chǎn)管理人員模擬考試題庫試卷附答案
- 加壓過濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹脂砂混砂工藝知識總結(jié)
- XXXXX現(xiàn)場安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級)職業(yè)技能理論知識考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫試卷含答案
- 工段(班組)級安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫試卷含答案-4
- 建筑起重司索信號工安全操作要點(diǎn)
- 實(shí)驗(yàn)室計(jì)量常見的30個問問答題含解析