九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt

  • 資源ID:11498688       資源大小:371KB        全文頁(yè)數(shù):59頁(yè)
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt

第10章流類庫(kù)與輸入輸出,10.1I/O標(biāo)準(zhǔn)流類10.2格式化I/O10.3文件流10.4字符串流,10.1I/O標(biāo)準(zhǔn)流類,10.1.1預(yù)定義流10.1.2C+中的流類庫(kù),返回首頁(yè),在C+語(yǔ)言中,數(shù)據(jù)的輸入和輸出(簡(jiǎn)寫為I/O)包括對(duì)標(biāo)準(zhǔn)輸入設(shè)備鍵盤和標(biāo)準(zhǔn)輸出設(shè)備顯示器、對(duì)在外存磁盤上的文件和對(duì)內(nèi)存中指定的字符串存儲(chǔ)空間進(jìn)行輸入輸出這三個(gè)方面。對(duì)標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備的輸入輸出簡(jiǎn)稱為標(biāo)準(zhǔn)I/O,對(duì)在外存磁盤上文件的輸入輸出簡(jiǎn)稱為文件I/O,對(duì)內(nèi)存中指定的字符串存儲(chǔ)空間的輸入輸出簡(jiǎn)稱為串I/O。,C+中把數(shù)據(jù)之間的傳輸操作稱作流。在C+中,流既可以表示數(shù)據(jù)從內(nèi)存?zhèn)魉偷侥硞€(gè)載體或設(shè)備中,即輸出流;也可以表示數(shù)據(jù)從某個(gè)載體或設(shè)備傳送到內(nèi)存緩沖區(qū)變量中,即輸入流。在進(jìn)行I/O操作時(shí),首先打開操作,使流和文件發(fā)生聯(lián)系,建立聯(lián)系后的文件才允許數(shù)據(jù)流入或流出,輸入或輸出結(jié)束后,使用關(guān)閉操作使文件與流斷開聯(lián)系。,C+中所有流都是相同的,但文件可以不同。使用流以后,程序用流統(tǒng)一對(duì)各種計(jì)算機(jī)設(shè)備和文件進(jìn)行操作,使程序與設(shè)備、程序與文件無關(guān),從而提高了程序設(shè)計(jì)的通用性和靈活性。也就是說,無論與流相聯(lián)系的實(shí)際物理設(shè)備差別有多大,流都采用相同的方式運(yùn)行。這種機(jī)制使得流可以跨越物理設(shè)備平臺(tái),實(shí)現(xiàn)流的透明運(yùn)作,而與實(shí)際的物理設(shè)備無關(guān)。例如,往顯示器上輸出字符和向磁盤文件或打印機(jī)輸出字符,盡管接受輸出的物理設(shè)備不同,但具體操作過程是相同的。,10.1.1預(yù)定義流,1cout在ostream輸出流類中定義有對(duì)左移操作符>重載的一組公用成員函數(shù),函數(shù)的具體聲明格式為:istream,3cerrcerr類似標(biāo)準(zhǔn)錯(cuò)誤文件。cerr與cout的差別在于:(1)cerr不能重定向。(2)cerr不能被緩沖,它的輸出總是直接傳達(dá)到標(biāo)準(zhǔn)輸出設(shè)備上。4clogclog是不能重定向的,但是可以被緩沖。在某些系統(tǒng)中,由于緩沖,使用clog代替cerr可以改進(jìn)顯示速度。clog<<"Error"<<"n",返回本節(jié),10.1.2C+中的流類庫(kù),C+語(yǔ)言系統(tǒng)為實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出定義了一個(gè)龐大的類庫(kù),它包括的類主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream和strstream等。其中ios為根基類,它直接派生四個(gè)類:輸入流類istream、輸出流類ostream、文件流基類fstreambase和字符串流基類strstreambase,輸入文件流類ifstream同時(shí)繼承了輸入流類和文件流基類(當(dāng)然對(duì)于根基類是間接繼承),輸出文件流類ofstream同時(shí)繼承了輸出流類和文件流基類,輸入字符串流類istrstream同時(shí)繼承了輸入流類和字符串流基類,輸出字符串流類ostrstream同時(shí)繼承了輸出流類和字符串流基類,輸入輸出流類iostream同時(shí)繼承了輸入流類和輸出流類,輸入輸出文件流類fstream同時(shí)繼承了輸入輸出流類和文件流基類,輸入輸出字符串流類strstream同時(shí)繼承了輸入輸出流類和字符串流基類。,返回本節(jié),10.2格式化I/O,10.2.1ios類中的枚舉常量10.2.2使用ios成員函數(shù)10.2.3使用I/O操作符10.2.4檢測(cè)流操作的錯(cuò)誤,返回首頁(yè),10.2.1ios類中的枚舉常量,在根基類ios中定義有三個(gè)用戶需要使用的枚舉類型,由于它們是在公用成員部分定義的,所以其中的每個(gè)枚舉類型常量在加上ios:前綴后都可以為本類成員函數(shù)和所有外部函數(shù)訪問。在三個(gè)枚舉類型中有一個(gè)無名枚舉類型,其中定義的每個(gè)枚舉常量都是用于設(shè)置控制輸入輸出格式的標(biāo)志使用的。該枚舉類型定義如下:enumskipws,left,right,internal,dec,oct,hex,showbase,showpoint,uppercase,showpos,scientific,fixed,unitbuf,stdio;,各枚舉常量的含義如下:(1)skipws。(2)left,right,internal。(3)dec,oct,hex。(4)showbase。(5)showpoint。(6)uppercase。(7)showpos。(8)scientific,fixed。(9)unitbuf,stdio。,返回本節(jié),10.2.2使用ios成員函數(shù),ios類提供成員函數(shù)對(duì)流的狀態(tài)進(jìn)行檢測(cè)和進(jìn)行輸入輸出格式控制等操作,每個(gè)成員函數(shù)的聲明格式和簡(jiǎn)要說明如下:intbad();/操作出錯(cuò)時(shí)返回非0值inteof();/讀取到流中最后的文件結(jié)束符時(shí)返回非0值intfail();/操作失敗時(shí)返回非0值voidclear();/清除bad,eof和fail所對(duì)應(yīng)的標(biāo)志狀態(tài),使之恢復(fù)為正常狀態(tài)/值0,使good標(biāo)志狀態(tài)恢復(fù)為1charfill();/返回當(dāng)前使用的填充字符charfill(charc);/重新設(shè)置流中用于輸出數(shù)據(jù)的填充字符為c的值,返回/此前的填充字符。系統(tǒng)預(yù)設(shè)置填充字符為空格longflags();/返回當(dāng)前用于I/O控制的格式狀態(tài)字,longflags(longf);/重新設(shè)置格式狀態(tài)字為f的值,返回此前的格式狀態(tài)字intgood();/操作正常時(shí)返回非0值,當(dāng)操作出錯(cuò)、失敗和讀到文件/結(jié)束符時(shí)均為不正常,則返回0intprecision();/返回浮點(diǎn)數(shù)輸出精度,即輸出的有效數(shù)字的位數(shù)intprecision(intn);/設(shè)置浮點(diǎn)數(shù)的輸出精度為n,返回此前的輸出精度。系統(tǒng)預(yù)設(shè)/置的輸出精度為6,即輸出的浮點(diǎn)數(shù)最多具有6位為有效數(shù)字intrdstate();/操作正常時(shí)返回0,否則返回非0值,它與good()正好相反longsetf(longf);/根據(jù)參數(shù)f設(shè)置相應(yīng)的格式化標(biāo)志,返回此前的設(shè)置。該參數(shù)/f所對(duì)應(yīng)的實(shí)參為無名枚舉類型中的枚舉常量(又稱格式化常/量),可以同時(shí)使用一個(gè)或多個(gè)常量,每?jī)蓚€(gè)常量之間要用按位或/操作符連接。如需要左對(duì)齊輸出,并使數(shù)值中的字母大寫時(shí),/則調(diào)用該函數(shù)的實(shí)參為ios:left|ios:uppercase,longunsetf(longf);/根據(jù)參數(shù)f清除相應(yīng)的格式化標(biāo)志,返回此前的設(shè)置。如要/清除此前的左對(duì)齊輸出設(shè)置,恢復(fù)默認(rèn)的右對(duì)齊輸出設(shè)置,/則調(diào)用該函數(shù)的實(shí)參為ios:leftintwidth();/返回當(dāng)前的輸出域?qū)?。若返回?cái)?shù)值0則表明沒為剛才輸出的數(shù)/值設(shè)置輸出域?qū)挕]敵鲇驅(qū)捠侵篙敵龅闹翟诹髦兴加械淖止?jié)數(shù)intwidth(intw);/設(shè)置下一個(gè)數(shù)據(jù)值的輸出域?qū)挒閣,返回為輸出上一個(gè)數(shù)據(jù)值/所規(guī)定的域?qū)挘魺o規(guī)定則返回0。注意:此設(shè)置不是一直有/效,而只是對(duì)下一個(gè)輸出數(shù)據(jù)有效,例10-2:給出以下程序的運(yùn)行結(jié)果。#includevoidmain()intx=123;doubley=-3.456789;cout<<"x="cout.width(10);/設(shè)置輸出下一個(gè)數(shù)據(jù)的域?qū)挒?0cout<<x;/按默認(rèn)的右對(duì)齊輸出,剩余位置填充空格字符cout<<"y="cout.width(10);/設(shè)置輸出下一個(gè)數(shù)據(jù)的域?qū)挒?0cout<<y<<endl;cout.setf(ios:left);/設(shè)置按左對(duì)齊輸出,cout<<"x="cout.width(10);cout<<x;cout<<"y="cout.width(10);cout<<y<<endl;cout.fill(*);/設(shè)置填充字符為*cout.precision(3);/設(shè)置浮點(diǎn)數(shù)輸出精度為3cout.setf(ios:showpos);/設(shè)置正數(shù)的正號(hào)輸出cout<<"x="cout.width(10);cout<<x;cout<<"y="cout.width(10);cout<<y<<endl;,此程序運(yùn)行結(jié)果如下:x=123y=-3.45679x=123y=-3.45679x=+123*y=-3.46*,例10-3:給出以下程序的運(yùn)行結(jié)果。#includevoidmain()floatx=12,y=-3.456;cout<<x<<<<y<<endl;cout.setf(ios:showpoint);/強(qiáng)制顯示小數(shù)點(diǎn)和無效0cout<<x<<<<y<<endl;cout.unsetf(ios:showpoint);/恢復(fù)默認(rèn)輸出cout.setf(ios:scientific);/設(shè)置按科學(xué)表示法輸出cout<<x<<<<y<<endl;cout.setf(ios:fixed);/設(shè)置按定點(diǎn)表示法輸出cout<<x<<<<y<)的輸出對(duì)象即可。,例10-4:給出以下程序的運(yùn)行結(jié)果。#include/因iomanip.h中包含有iostream.h,所以該命令可省略#includevoidmain()intx=12,y=345,z=6789;cout<<x<<<<y<<<<z<<endl;/按十進(jìn)制輸出cout<<oct<<x<<<<y<<<<z<<endl;/按八進(jìn)制輸出cout<<hex<<x<<<<y<<<<z<<endl;/按十六進(jìn)制輸出cout<<setiosflags(ios:showbase|ios:uppercase);/設(shè)置基指示符和數(shù)值中的字母大寫輸出cout<<x<<<<y<<<<z<<endl;/仍按十六進(jìn)制輸出cout<<resetiosflags(ios:showbase|ios:uppercase);/取消基指示符和數(shù)值中的字母大寫輸出cout<<x<<<<y<<<<z<<endl;/仍按十六進(jìn)制輸出cout<<dec<<x<<<<y<<<<z<<endl;/按十進(jìn)制輸出,例10-5:給出以下程序的運(yùn)行結(jié)果。#include#includevoidmain()intx=123;doubley=-3.456789;cout<<"x="<<setw(10)<<x;cout<<"y="<<setw(10)<<y<<endl;cout<<setiosflags(ios:left);/設(shè)置按左對(duì)齊輸出cout<<"x="<<setw(10)<<x;cout<<"y="<<setw(10)<<y<<endl;,cout<<setfill(*);/設(shè)置填充字符為*cout<<setprecision(3);/設(shè)置浮點(diǎn)數(shù)輸出精度為3cout<<setiosflags(ios:showpos);/設(shè)置正數(shù)的正號(hào)輸出cout<<"x="<<setw(10)<<x;cout<<"y="<<setw(10)<<y<<endl;cout<<resetiosflags(ios:left|ios:showpos);cout<<setfill();,返回本節(jié),10.2.4檢測(cè)流操作的錯(cuò)誤,在I/O流的操作過程中可能出現(xiàn)各種錯(cuò)誤,每一個(gè)流都有一個(gè)狀態(tài)標(biāo)志字,以指示是否發(fā)生了錯(cuò)誤以及出現(xiàn)了哪種類型的錯(cuò)誤,這種處理技術(shù)與格式控制標(biāo)志字是相同的。ios類定義了以下枚舉類型:enumio_stategoodbit=0 x00,/不設(shè)置任何位,一切正常eofbit=0 x01,/輸入流已經(jīng)結(jié)束,無字符可讀入failbit=0 x02,/上次讀/寫操作失敗,但流仍可使用badbit=0 x04,/試圖作無效的讀/寫操作,流不再可用hardfail=0 x80/不可恢復(fù)的嚴(yán)重錯(cuò)誤;,返回本節(jié),10.3文件流,10.3.1文件的概念10.3.2文件的打開與關(guān)閉10.3.3文件的讀寫,返回首頁(yè),10.3.1文件的概念,在磁盤上保存的信息是按文件的形式組織的,每個(gè)文件都對(duì)應(yīng)一個(gè)文件名,并且屬于某個(gè)物理盤或邏輯盤的目錄層次結(jié)構(gòu)中一個(gè)確定的目錄之下。一個(gè)文件名由文件主名和擴(kuò)展名兩部分組成,它們之間用圓點(diǎn)(即小數(shù)點(diǎn))分開,擴(kuò)展名可以省略,當(dāng)省略時(shí)也要省略掉前面的圓點(diǎn)。文件主名是由用戶命名的一個(gè)有效的C+標(biāo)識(shí)符,為了同其他軟件系統(tǒng)兼容,一般讓文件主名為不超過8個(gè)有效字符的標(biāo)識(shí)符,同時(shí)為了便于記憶和使用,最好使文件主名的含義與所存的文件內(nèi)容相一致。,在C+程序中使用的保存數(shù)據(jù)的文件按存儲(chǔ)格式分為兩種類型,一種為字符格式文件,簡(jiǎn)稱字符文件,另一種為內(nèi)部格式文件,簡(jiǎn)稱字節(jié)文件。字符文件又稱ASCII碼文件或文本文件,字節(jié)文件又稱二進(jìn)制文件。,C+程序文件,利用其他各種語(yǔ)言編寫的程序文件,用戶建立的各種文本文件,各種軟件系統(tǒng)中的幫助文件等,因都是ASCII碼文件,所以都可以在C+中作為字符文件使用。C+系統(tǒng)把各種外部設(shè)備也看作為相應(yīng)的文件。如把標(biāo)準(zhǔn)輸入設(shè)備鍵盤和標(biāo)準(zhǔn)輸出設(shè)備顯示器看作為標(biāo)準(zhǔn)輸入輸出文件,其文件名(又稱設(shè)備名)為con,當(dāng)向它輸出信息時(shí)就是輸出到顯示器,當(dāng)從它輸入信息時(shí)就是從鍵盤輸入。,返回本節(jié),10.3.2文件的打開與關(guān)閉,流可以分為3類:輸入流、輸出流以及輸入/輸出流,相應(yīng)地必須將流說明為ifstream、ofstream以及fstream類的對(duì)象。例如:ifstreamifile;/說明一個(gè)輸入流ofstreamofile;/說明一個(gè)輸出流fstreamiofile;/說明一個(gè)輸入/輸出流,說明了流對(duì)象之后,可使用函數(shù)open()打開文件。文件的打開即是在流與文件之間建立一個(gè)連接。open()的函數(shù)原型為:voidopen(constchar*filename,intmode,intprot=filebuf:openprot);,ios:in打開文件進(jìn)行讀操作ios:out打開文件進(jìn)行寫操作ios:ate打開時(shí)文件指針定位到文件尾ios:app添加模式,所有增加都在文件尾部進(jìn)行ios:trunc如果文件已存在則清空原文件ios:nocreate如果文件不存在則打開失敗ios:noreplace如果文件存在則打開失敗ios:binary二進(jìn)制文件(非文本文件),下面對(duì)文件的打開方式作幾點(diǎn)說明:(1)文件的打開方式可以為上述的一個(gè)枚舉常量,也可以為多個(gè)枚舉常量構(gòu)成的按位或表達(dá)式。(2)使用open成員函數(shù)打開一個(gè)文件時(shí),若由字符指針參數(shù)所指定的文件不存在,則建立該文件。(3)當(dāng)打開方式中不含有ios:ate或ios:app選項(xiàng)時(shí),則文件指針被自動(dòng)移到文件的開始位置,即字節(jié)地址為0的位置。(4)當(dāng)用輸入文件流對(duì)象調(diào)用open成員函數(shù)打開一個(gè)文件時(shí),打開方式參數(shù)可以省略,默認(rèn)按ios:in方式打開,若打開方式參數(shù)中不含有ios:in選項(xiàng)時(shí),則會(huì)自動(dòng)被加上。,下面給出定義文件流對(duì)象和打開文件的一些例子:(1)ofstreamfout;fout.open("a:aaa.dat");/字符串中的雙反斜線表示一個(gè)反斜線(2)ifstreamfin;fin.open("a:bbb.dat",ios:in|ios:nocreate);(3)ofstreamofs;ofs.open("a:ccc.dat",ios:app);(4)fstreamfio;fio.open("a:ddd.ran",ios:in|ios:out|ios:binary);,返回本節(jié),10.3.3文件的讀寫,1文件讀寫方法(1)使用流運(yùn)算符直接讀寫。(2)使用流成員函數(shù)。常用的輸出流成員函數(shù)如下:put函數(shù)write函數(shù)get函數(shù)read函數(shù)getline函數(shù),下面對(duì)文件的打開方式作幾點(diǎn)說明:(1)向字符文件輸出數(shù)據(jù)有兩種方法,一種是調(diào)用從ostream流類中繼承來的插入操作符重載函數(shù),另一種是調(diào)用從ostream流類中繼承來的put成員函數(shù)。(2)從打開的字符文件中輸入數(shù)據(jù)到內(nèi)存變量有三種方法。(3)當(dāng)使用流對(duì)象調(diào)用get()成員函數(shù)時(shí),通過判斷返回值是否等于文件結(jié)束符EOF可知文件中的數(shù)據(jù)是否被輸入完畢。,2文本文件的讀寫文本文件只適用于那些解釋為ASCII碼的文件。處理文本文件時(shí)將自動(dòng)作一些字符轉(zhuǎn)換,如輸出換行字符0 x0A時(shí)將轉(zhuǎn)換為回車0 x0D與換行0 x0A兩個(gè)字符存入文本文件,讀入時(shí)也會(huì)將回車與換行兩個(gè)字符合并為一個(gè)換行字符,這樣內(nèi)存中的字符與寫入文件中的字符之間就不再是一一對(duì)應(yīng)關(guān)系。文本文件的結(jié)束以ASCII碼的控制字符0 x1A表示。,例10-7:向a盤上的write1.dat文件輸出010之間的整數(shù),含0和10在內(nèi)。#include#include#includevoidmain(void)ofstreamf1("a:/write1.dat");/定義輸出文件流,并打開相應(yīng)文件,若打開/失敗則f1帶回0值if(!f1)/當(dāng)f1打開失敗時(shí)進(jìn)行錯(cuò)誤處理cerr<<"a:/write1.datfilenotopen!"<<endl;exit(1);for(inti=0;i<10;i+)f1<<i<<""/向f1文件流輸出i值f1.close();/關(guān)閉f1所對(duì)應(yīng)的文件,例10-9:假定一個(gè)結(jié)構(gòu)數(shù)組a中的元素類型pupil包含有表示姓名的字符指針域name和表示成績(jī)的整數(shù)域grade,試編寫一個(gè)函數(shù)把該數(shù)組中的n個(gè)元素輸出到字符文件“a:/write3.dat”中。#include#includevoidArrayOut(pupila,intn)ofstreamf3("a:/write3.dat");if(!file3)/當(dāng)file3打開失敗時(shí)進(jìn)行錯(cuò)誤處理cerr<<"Fileofa:/write3.datnotopen!"<<endl;exit(1);,for(inti=0;i<n;i+)file3<<ai.name<<endl<<ai.grade<<endl;file3.close();若已經(jīng)為輸出pupil類型的數(shù)據(jù)定義了如下插入操作符重載函數(shù):ostream”。,例10-10:從例10-7所建立的a:/write1.dat文件中輸入全部數(shù)據(jù)并依次顯示到屏幕上。#include#include#includevoidmain(void)ifstreamf1("a:/write1.dat",ios:in|ios:nocreate);/定義輸入文件流,并打開相應(yīng)文件,若打開失敗則file1帶回0值if(!file1)/當(dāng)file1打開失敗時(shí)進(jìn)行錯(cuò)誤處理cerr<<"a:/write1.datfilenotopen!"<>x)/依次從文件中輸入整數(shù)到x,當(dāng)讀到的是文件結(jié)束符時(shí)條件表達(dá)式/的值為0cout<<x<<cout<fn;ifile.open(fn);if(!ifile),cout>pos;if(pos>maxpos)cout<<"Thepositionoffileisntright"<<endl;,elsecharch;ifile.seekg(pos);ifile.get(ch);cout<<ch<<endl;ifile.close();return1;如果需要讀取多個(gè)字節(jié)的數(shù)據(jù),則可將ifile.get(ch);改為:ifile.read(char*),返回本節(jié),10.4字符串流,10.4.1字符串流概述10.4.2istrstream類的構(gòu)造函數(shù)10.4.3ostrstream類的構(gòu)造函數(shù),返回首頁(yè),10.4.1字符串流概述,字符串流類包括輸入字符串流類istrstream,輸出字符串流類ostrstream和輸入輸出字符串流類strstream三種。它們都被定義在系統(tǒng)頭文件strstrea.h中。只要在程序中帶有該頭文件,就可以使用任一種字符串流類定義字符串流對(duì)象。每個(gè)字符串流對(duì)象簡(jiǎn)稱為字符串流。字符串流對(duì)應(yīng)的訪問空間是內(nèi)存中由用戶定義的字符數(shù)組,而文件流對(duì)應(yīng)的訪問空間是外存上由文件名確定的文件存儲(chǔ)空間。,三種字符串流類的構(gòu)造函數(shù)聲明格式分別如下:istrstream(constchar*buffer);ostrstream(char*buffer,intn);strstream(char*buffer,intn,intmode);,下面給出定義相應(yīng)字符串流的例子。(1)ostrstreamsout(a1,50);(2)istrstreamsin(a2);(3)strstreamsio(a3,sizeof(a3),ios:in|ios:out);,返回本節(jié),10.4.2istrstream類的構(gòu)造函數(shù),istrstream類的構(gòu)造函數(shù)的原型分別是:istrstream:istrstream(char*s);istrstream:istrstream(char*s,intn);這兩個(gè)構(gòu)造函數(shù)的第一個(gè)參數(shù)s是一個(gè)字符指針或字符數(shù)組,使用該串來初始化要?jiǎng)?chuàng)建的流對(duì)象。第一個(gè)構(gòu)造函數(shù)是使用所指定的串的全部?jī)?nèi)容來構(gòu)造流對(duì)象,而第二個(gè)構(gòu)造函數(shù)使用串中前n個(gè)字符來構(gòu)造串對(duì)象。,下面舉例說明上述構(gòu)造函數(shù)的用法。例10-14:從一個(gè)字符串流中輸入用逗號(hào)分開的每一個(gè)整數(shù)并顯示出來。#includevoidmain()chara="12,34,56,78,90,87,65,43"cout<<a<>ws>>x>>ws;/從流中讀入一個(gè)整數(shù),并使用操作符ws讀取/一個(gè)整數(shù)前后的空白字符cout<<x<</輸出x的值并后跟一個(gè)空格sin.get(ch);/從sin流中讀入一個(gè)字符,實(shí)際讀取的是,或字符cout<>i;istrstreams2(buf,3);s2>>j;cout<<i+j<=48/從sin流中讀入下一個(gè)字符,sout<<<<ends;/向sout流輸出作為結(jié)束符的字符和一個(gè)字符串結(jié)束符0cout<<b;/輸出字符串流sout對(duì)應(yīng)的字符串cout<<endl;該程序的運(yùn)行結(jié)果如下:ab12+34,56*78-90/cd123,ABC45DE:fg67;891234567890123456789,返回本節(jié),

注意事項(xiàng)

本文(《C程序設(shè)計(jì)》電子教案第10章流類庫(kù)與輸入輸出.ppt)為本站會(huì)員(max****ui)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!