




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、93 練習(xí)題解答 1在C+的輸入輸出操作中,“流”的概念如何理解?從流的角度說(shuō)明什么是提取操作?什么是插入操作? 答:C+語(yǔ)言將輸入信息和輸出信息都看作為信息流,或者是字符流,或者是二進(jìn)制碼流,因此,稱為輸人流和輸出流。輸人流是輸入的信息流,輸出流是輸出的信息流。 從“流”的角度來(lái)講,提取操作是從輸入信息流中讀取信息,將它存放在機(jī)器中;插入操作是向輸出信息流中加入信息,將它流向某個(gè)指定的設(shè)備或文件中去。 2系統(tǒng)預(yù)定義的流類對(duì)象中,cin和cout的功能是什么? 答:cin是istream類的對(duì)象,它表示標(biāo)準(zhǔn)輸入流對(duì)象,即鍵盤(pán)輸入。 cout是ostream類的對(duì)象,它表示標(biāo)準(zhǔn)輸出流對(duì)象,即顯示
2、屏幕輸出。 3屏幕輸出一個(gè)字符串有哪些方法?屏幕輸出一個(gè)字符有哪些方法? 答:屏幕輸出一個(gè)字符串通常使用下述方法。 (1)標(biāo)準(zhǔn)輸出流對(duì)象cout和插入運(yùn)算符。例如, cout ”output a string! n”; (2)使用成員函數(shù)write()輸出一個(gè)字符串。例如, cout.write(”string”,strlen(”string”); 屏幕輸出一個(gè)字符通常也有兩種方法。(1) 使用cout和插入運(yùn)算符。(2) 例如。 couta,bendl; (2)使用成員函數(shù)put()輸出一個(gè)字符。例如, cout.put(a“)。put(,)put(b)put (n); 4鍵盤(pán)輸入一個(gè)字符串
3、有哪些方法?鍵盤(pán)輸入一個(gè)字符有哪些方法? 答:鍵盤(pán)輸入一個(gè)字符串通常使用下述方法: (1)使用標(biāo)準(zhǔn)輸入流對(duì)象cin和提取符。 例如 cinab; (2)使用成員函數(shù)read()輸入一個(gè)字符串。 例如 char s80=” "cinread(s,80); (3)使用成員函數(shù)getline()輸入一行字符串。 例如 char buf80; cingetline(buf,80)5 鍵盤(pán)輸入一個(gè)字符通常用下述兩種方法。 (1)使用cin和提取符。 例如 Char cl,c2; cinclc2; (2)使用成員函數(shù)get()輸入一個(gè)字符。 例如 Char c ; cinget(c); 5如何輸
4、出一個(gè)int型數(shù)值量的不同進(jìn)位制? 答:輸出一個(gè)int型數(shù)值量的不同進(jìn)制,可采用下述方法。 例如 int a123: 輸出a的十進(jìn)制數(shù)值: coutdecaendl: 默認(rèn)為十進(jìn)制。 輸出a的八進(jìn)制數(shù)值 coutoctaendl; 輸出a的十六進(jìn)制數(shù)值 couthexaendl: 6如何輸出一個(gè)浮點(diǎn)數(shù)的不同精度? 答:設(shè)置浮點(diǎn)數(shù)的精度有兩種方法。 (1)使用成員函數(shù)precision()設(shè)置浮點(diǎn)數(shù)有效數(shù)字的位數(shù)。 例如 cout.precision(8); 表明輸出浮點(diǎn)數(shù)的有效數(shù)字位數(shù)為8位,不足8位后補(bǔ)0,超過(guò)8位四舍五人取8位。 (2)使用操作子set spreci sion(int)設(shè)置
5、浮點(diǎn)數(shù)精度。 例如 coutsetsprecision(8)<<1.23456789<<endl: 輸出結(jié)果為1.23456789,不含小數(shù)點(diǎn),共8位。 7如何確定輸出數(shù)據(jù)項(xiàng)的寬度? 答:確定輸出數(shù)據(jù)項(xiàng)寬度的方法如下: (1)使用成員函數(shù)width()確定輸出寬度。 例如 coutWidth(10): 表明下面輸出的數(shù)據(jù)項(xiàng)最小寬度為10個(gè)字符位置,超過(guò)后按實(shí)際寬度,不足補(bǔ)填充符。輸出寬度設(shè)置僅用一次。不設(shè)置寬度時(shí)按默認(rèn)寬度0,即按實(shí)際寬度輸出。 (2)使用操作子setw(int)設(shè)置輸出數(shù)據(jù)項(xiàng)寬度。 例如 coutsetw(10)l 23456endl; 輸出結(jié)果為 l
6、 23456,其寬度為10。 8采用什么方法打開(kāi)和關(guān)閉磁盤(pán)文件? 答:打開(kāi)磁盤(pán)文件有下述兩種方法。 (1)創(chuàng)建fstream類的對(duì)象,打開(kāi)已知文件,需指出打開(kāi)方式。例如,以寫(xiě)方式打開(kāi) xy.txt文件,具體格式如下所示。 fstream output(”xytxt”,ios:out); (2)創(chuàng)建ifstream類或ofstream類的對(duì)象,只需已知文件名。例如,以讀方式打開(kāi) xytxt文件,具體格式如下所示。 ifstrcam input(”xytxt”); 關(guān)閉磁盤(pán)文件的方法如下: 使用成員函數(shù)close()。 例如 inputclose( ); 將創(chuàng)建的inPut輸入流對(duì)象關(guān)閉。 9寫(xiě)磁
7、盤(pán)文件時(shí)有哪幾種方法? 答:寫(xiě)磁盤(pán)文件的方法如下。 (1)使用輸出流對(duì)象和插入符,可向打開(kāi)的文件中寫(xiě)入各種類型的數(shù)據(jù)。(2)使用輸出流對(duì)象和成員函數(shù)put(),每次向文件中寫(xiě)一個(gè)字符。 (3)使用輸出流對(duì)象和成員函數(shù)w rite(),可向文件中寫(xiě)入若干個(gè)字符。 10讀磁盤(pán)文件時(shí)有哪幾種方法? 答:讀磁盤(pán)方法如下所示。(1)使用輸入流對(duì)象和提取符(>>),可以從打開(kāi)的文件中讀取各種類型的數(shù)據(jù)。(2)使用輸入流對(duì)象和成員函數(shù)get()。每次從打開(kāi)的文件中讀取一個(gè)字符。(3)使用輸入流對(duì)象和成員函數(shù)read(),可以從打開(kāi)的文件中提取一個(gè)字符串。11如何確定文件的讀指針或?qū)懼羔樀奈恢???/p>
8、何改變讀指針或?qū)懼羔樀奈恢茫看穑篶+語(yǔ)言提供了隨機(jī)訪問(wèn)數(shù)據(jù)文件的相關(guān)操作。由這些操作可以改變讀指針和寫(xiě)指針的位置,從而實(shí)現(xiàn)隨機(jī)讀寫(xiě)的目地.一個(gè)文件被打開(kāi)后,由于打開(kāi)方式不同,讀,寫(xiě)指針位置也不同,通常是在文件首,有時(shí)。例如按追加寫(xiě)打開(kāi)時(shí),寫(xiě)指針會(huì)出現(xiàn)在文件民, iostream類提供3個(gè)用來(lái)改變讀指針位置的成數(shù)函數(shù)c 它們是 istrcam istrcam:seekg(流中位置 istream istrcam:seekg (偏移量,參照位置> ;streampos istream:tellg();其中,<流中位置>和<偏移量>都是long型量,以字節(jié)數(shù)為單位。&l
9、t;參照位置>含意如下所示。 cur1 相對(duì)當(dāng)前讀指針?biāo)付ǖ奈恢?beg0 相對(duì)于流的開(kāi)始位置 end2 相對(duì)于流的結(jié)尾處 streampos 被定義為long型量。 例如 inputseekg(l00,ios:end); 表示使讀指針相對(duì)文件流尾處前移loo個(gè)字節(jié)。 成員函數(shù)tellg()將返回當(dāng)前讀指針相對(duì)于流開(kāi)始處的字節(jié)數(shù)。 同樣,ostream類中提供了如下3個(gè)關(guān)于寫(xiě)指針操作的成員函數(shù)。 ostream &ostream:seekp(流中位置); ostream &ostream:seekp(偏移量,參照位置; streampos ostream:tellp()
10、; 具體解釋同上。 l 2流的錯(cuò)誤狀態(tài)如何處理? 答:在ios類中,定義一個(gè)用來(lái)記錄錯(cuò)誤信息的數(shù)據(jù)成員,稱為狀態(tài)字。該狀態(tài)字的各位是用不同的錯(cuò)誤狀態(tài)來(lái)描述的。 例如 eofbitOx01 表示到達(dá)文件尾 failbitOx02 表示IO操作失敗 等等。 在ios類中又定義了檢測(cè)流狀態(tài)字的各種成員函數(shù)。 例如 int eof() 該函數(shù)返回非零值表示已到文件尾 int fail() 如果faiIbit位被設(shè)置,該函數(shù)返回非零值。 等等。 利用上述成員函數(shù)檢測(cè)流的錯(cuò)誤狀態(tài),并進(jìn)行處理。 94 作業(yè)題解答 一、選擇填空 1進(jìn)行文件操作時(shí)需要包含( )文件。 A:iostreamh Bfstreamh
11、 C stdioh Dstdlibh 答: B。 2使用操作子對(duì)數(shù)據(jù)進(jìn)行格式輸出時(shí),應(yīng)包含( )文件。 A iostreamh B fstreamh C。 iomaniph D stdlibh 答:C。 3已知:int a,*pa&a;輸出指針pa十進(jìn)制的地址值的方法是( )。 A coutpa B cout*pa Ccout&pa Dcoutlong(&pa) 答:D。 4下列輸出字符A的方法中,( )是錯(cuò)誤的。 Acoutput(A) BcoutA C coutput(A) D char AA;coutA 答:A。 5關(guān)于getline()函數(shù)的下列描述中,( )是
12、錯(cuò)的。 A該函數(shù)是用來(lái)從鍵盤(pán)上讀取字符串的 B該函數(shù)讀取的字符串長(zhǎng)度是受限制的 C該函數(shù)讀取字符串時(shí)遇到終止符便停止 D該函數(shù)中所使用的終止符只能是換行符 答:D。 6關(guān)于read()函數(shù)的下列描述中,( )是對(duì)的。 A該函數(shù)只能從鍵盤(pán)輸人中獲取字符串 B該函數(shù)所獲取的字符多少是不受限制的 C該函數(shù)只能用于文本文件的操作中 D該函數(shù)只能按規(guī)定讀取所指定的字符數(shù) 答:B。 7在ios中提供控制格式的標(biāo)志位中,( )是轉(zhuǎn)換為十六進(jìn)制形式的標(biāo)志位。 A hex B oct C dcc D。1eft 答:A。 8控制格式輸出輸入的操作子中,( )是設(shè)置域?qū)挼摹?Aws Boct Csetfill()
13、D,setw() 答:D。 9磁盤(pán)文件操作中,打開(kāi)磁盤(pán)文件的訪問(wèn)方式常量中,( )是以追加方式打開(kāi)文件的。 A in B out C app D ate 答:C。 10下列函數(shù)中,( )是對(duì)文件進(jìn)行寫(xiě)操作的。 Aget() Bread() Cseekg() Dput() 答:D。 二、判斷下列描述的正確性,對(duì)者劃,錯(cuò)者劃× 1使用提取符()可以輸出各種基本數(shù)據(jù)類型的變量的值,也可以輸出指針值。 ×2預(yù)定義的插入符從鍵盤(pán)上接收數(shù)據(jù)是不帶緩沖區(qū)的。 3預(yù)定義的提取符和插入符是可以重載的。 ×4記錄流的當(dāng)前格式化狀態(tài)的標(biāo)志字中每一位用于記錄一種格式,這種格式是不能被設(shè)置
14、或清除的。 5設(shè)置和清除格式標(biāo)志字的成員函數(shù)需要通過(guò)對(duì)象來(lái)引用它們,輸出顯示格式的對(duì)象通常是cout。 6操作子本身是一個(gè)對(duì)象,它可以直接被提取符或插入符操作。 7get()函數(shù)不能從流中提取終止字符,終止字符仍留在流中。getline()函數(shù)可以從流中提取終止字符,但終止字被丟棄。 ×8ios類的成員函數(shù)clear()是用來(lái)清除整個(gè)屏幕的。 9使用打開(kāi)文件函數(shù)open()之前,需要定義一個(gè)流類對(duì)象,使用open()函數(shù)來(lái)操作該對(duì)象。 10使用關(guān)閉文件函數(shù)close()關(guān)閉一個(gè)文件時(shí),但流對(duì)象仍存在。 11以app方式打開(kāi)文件時(shí),當(dāng)前的讀指針和寫(xiě)指針都定位于文件尾。 ×12
15、打開(kāi)ASCII碼流文件和二進(jìn)制流文件時(shí),打開(kāi)方式是相同的。 13read()和write()函數(shù)可以讀寫(xiě)文本文件,也可以讀寫(xiě)二進(jìn)制文件。 14流的狀態(tài)包含流的內(nèi)容、長(zhǎng)度和下一次提取或插入操作的當(dāng)前位置。 ×15seekg()函數(shù)和seekp()函數(shù)分別用來(lái)定位讀指針和寫(xiě)指針的。如果使用 seek()函數(shù)可以同時(shí)定義讀寫(xiě)指針。 三、分析下列程序的輸出結(jié)果 1 #includeiostreamh #includefstreamh #includestdlibh void main( )fstream outfile,infile; outfile.open(“text.dat”,ios:
16、out);if(!outfile)cout<<”text.dat cant open.n”;abort();outfile<<”123456789n”;outfile<<”aaabbbbbbbbcccn”<<”dddddfffeeeeggggghhhn”;outfile<<”okn”;outfile.close();infile.open(”tcxtdat”,ios:in);if(!infile)cout”file cant open.n”;abort(); char textline80;While(!infileeof() inf
17、ilegctline(textline,sizeof(textline); couttextlineendl; 運(yùn)行該程序輸出如下結(jié)果。 1 2 3 4 5 6 7 8 9 a a a b b b b b b b c c c d d d d d f f f c c c c g g g g g h h h o k! 分析: 該程序中先打開(kāi)文件textdat,打開(kāi)方式是寫(xiě),判斷打開(kāi)成功后,向該文件中輸入行字符串。然后,將該文件關(guān)閉。 接著,以讀方式打開(kāi)textdat文件,判斷成功后,將通過(guò)while循環(huán)語(yǔ)句。逐行讀:textdat文件中的內(nèi)容,并輸出顯示在屏幕上。 這里,使用了打開(kāi)、關(guān)閉文件的操作
18、以及對(duì)打開(kāi)文件的讀、寫(xiě)操作。 2 #includeiostreamh #includefstreamh#include<stdlib.h>void main()fstream file1;file1.open(“text1.dat”,ios:out|ios:in);if(!filel)cout<<”text1.dat cant open.n”;abort();char textline=”123456789abcdefghijkl.n”;for(int i=0 ; i<sizeof(textline);i+) file1.seekg(0);/ 將讀指針移至文件開(kāi)始
19、char ch; while(filel.get(ch)coutch;filelclose( ); 運(yùn)行該程序的輸出結(jié)果如下所示。 1 23456789a b c d e f g h ij k1 分析: 該程序的特點(diǎn)是打開(kāi)文件textldat時(shí),采用了又寫(xiě)又讀的打開(kāi)方式。打開(kāi)成功后, 先使用寫(xiě)字符函數(shù)put(),將字符數(shù)組textline中的字符串寫(xiě)入該文件。 然后,使用下列語(yǔ)句 filelseekg(0); 將讀指針移至文件開(kāi)始,接著使用讀字符函數(shù)get()從文件中讀出字符,并顯示在屏幕上。 該程序中,對(duì)文件textldat的讀寫(xiě)只打開(kāi)一次。 #includestrstreahvoid ma
20、in() ostrstream ss: ss”Hi,good morning”; ssends: char * bufss.str( ); coutbufendI;de1ete buf; 運(yùn)行該程序輸出結(jié)果如下所示。 Hi, good morning! 分析: 程序中首先創(chuàng)建一個(gè)ostrstream類的對(duì)象ss,ss是一個(gè)用來(lái)存放插人數(shù)據(jù)的數(shù)組對(duì)象。接著,向s s中存人字符串”Hi,g ood morning!”。又增加一個(gè)字符串結(jié)束符o,可用end2表示。 程序中又定義個(gè)字符指針使用ss數(shù)組對(duì)象的指針值進(jìn)行初始化,這一功能用成員函數(shù)sltr()來(lái)實(shí)現(xiàn)的。最后。輸出顯示一個(gè)字符串(buf中的字符串)在屏幕上。 4#includeiostream.h> #
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理自考本科專業(yè)發(fā)展與試題及答案
- 行政管理的評(píng)價(jià)標(biāo)準(zhǔn)試題及答案
- 2025農(nóng)業(yè)銀行貸款合同范本
- 行政管理的社會(huì)超級(jí)結(jié)構(gòu)研究試題及答案
- 2025合作伙伴(公司)合作協(xié)議合同范本
- 2025年管理心理學(xué)考試注意事項(xiàng)試題及答案
- 現(xiàn)代管理學(xué)中業(yè)務(wù)流程再造試題及答案
- 行政管理學(xué)學(xué)術(shù)研究試題及答案
- 2025婚禮策劃公司員工合同樣本
- 2025家庭雇傭家政服務(wù)員合同
- 第四課:印巴戰(zhàn)爭(zhēng)
- 電氣設(shè)備-開(kāi)篇緒論匯編
- 武漢綠地中心項(xiàng)目技術(shù)管理策劃書(shū)(48頁(yè))
- 婚無(wú)遠(yuǎn)慮必有財(cái)憂法商思維營(yíng)銷之婚姻篇74張幻燈片
- 紅外圖像處理技術(shù)課件
- 小學(xué)一年級(jí)人民幣學(xué)具圖片最新整理直接打印
- 投擲:原地投擲壘球
- 港口碼頭常用安全警示標(biāo)志
- 密閉式周圍靜脈輸液技術(shù)PPT課件
- 電梯快車調(diào)試方法
- 主要材料損耗率表
評(píng)論
0/150
提交評(píng)論