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

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

程序設計基礎:10第十章 C++的輸入輸出

  • 資源ID:240056817       資源大?。?span id="24d9guoke414" class="font-tahoma">548KB        全文頁數:79頁
  • 資源格式: PPT        下載積分:40積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要40積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

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

程序設計基礎:10第十章 C++的輸入輸出

合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1第十章第十章 C+的輸入輸出的輸入輸出 流流 文件文件 文件流的使用:文件的輸入和輸出文件流的使用:文件的輸入和輸出合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院210.1 C+語言的輸入語言的輸入/輸出輸出10.1.1 外部外部設備與文件與文件外部外部設備:n存存儲設備:存:存儲信息,信息,塊設備(字符(字符塊)介介質:硬:硬盤、軟盤、磁、磁帶、光、光盤、組織:文件:文件n輸入入/輸出出設備:輸入入/輸出信息,字符出信息,字符設備 輸入:入:鍵盤、鼠、鼠標、掃描描儀、輸出:出:顯示器、打印機、示器、打印機、繪圖儀、合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院310.1 C+語言的輸入語言的輸入/輸出輸出10.1.1 外部外部設備與文件與文件文件(文件(file):):n作作為輸入入/輸出的出的對象象n與外部與外部設備之之間建立關建立關聯,作,作為輸入入/輸出出設備的抽象描述的抽象描述 文件:必文件:必須有一個由用有一個由用戶命名的唯一名字,可用于存命名的唯一名字,可用于存儲程程序和數據,序和數據,還可用于提高程序的可用于提高程序的設備無關性(獨立于無關性(獨立于設備的的類型、臺號)。型、臺號)。輸入入輸出系出系統(tǒng):特殊的文件,由操作系:特殊的文件,由操作系統(tǒng)預先先規(guī)定,如:定,如:CON:控制臺:控制臺終端端 PRN:打印機:打印機合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院410.1 C+語言的輸入語言的輸入/輸出輸出10.1.2 程序中程序中對文件的操作文件的操作程序程序 外部外部設備 文件系文件系統(tǒng):操作系:操作系統(tǒng)(operating system)operating system)提供的一系列系提供的一系列系統(tǒng)調用(用(system callsystem call)接口。)接口。文件文件緩沖區(qū):由操作系沖區(qū):由操作系統(tǒng)設置置 程序程序設計語言的言的輸入入輸出機制:建立在系出機制:建立在系統(tǒng)調用基用基礎上的上的抽象抽象層次更高的機制(函數次更高的機制(函數庫、類庫)文件系統(tǒng)文件系統(tǒng)合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院510.1 C+語言的輸入語言的輸入/輸出輸出10.1.2 程序中程序中對文件的操作文件的操作C+C+語言提供了言提供了流流用于用于讀寫文件寫文件。接收接收輸出數據的地方稱出數據的地方稱為目目標,發(fā)出出輸入數據的地方稱入數據的地方稱為源源。輸入入輸出操作可以看作是字符序列在源、目出操作可以看作是字符序列在源、目標與與對象之象之間的流的流動,因而將完成,因而將完成輸入入輸出操作的出操作的類稱稱為流流類。源流源流目目標流流 輸入入緩沖區(qū)沖區(qū)(讀)輸出出緩沖區(qū)沖區(qū)(寫寫)流的提取運算符流的提取運算符 流的插入運算符流的插入運算符”和和”提取符提取符 在在類istream中定中定義。輸出:向流中插入一個字符序列,出:向流中插入一個字符序列,“”插入符插入符 在在類ostream中定中定義。流與物理流與物理設備的關的關聯:鍵盤、顯示器、示器、四個四個預定定義的流的流對象:象:cin:標準準輸入,缺省入,缺省為鍵盤cout:標準準輸出,缺省出,缺省為顯示器示器cerr:無無緩沖的沖的標準準錯誤輸出,缺省出,缺省為顯示器示器clog:有有緩沖的沖的標準準錯誤輸出,缺省出,缺省為顯示器示器合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1010.2 C+的流類庫的流類庫10.2.3 支持文件的流支持文件的流類頭文件:文件:fstream.hiosistreamostreamiostreamstreambuffilebuffstreambaseifstreamofstreamfstream合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1110.2 C+的流類庫的流類庫10.2.4 支持字符串的流支持字符串的流類頭文件:文件:strstrea.h 字符串流:在流與字符串之字符串流:在流與字符串之間建立建立連接接iosistreamostreamiostreamstreambufstrstreambufstrstreambaseistrstreamostrstreamstrstream合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1210.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數格式化格式化標志字(志字(formatting flag):long x_flag;在在iostream.h中的中的ios類定定義中,中,說明了如下的枚明了如下的枚舉:enum /formatting flags skipws =0 x0001,/skip whitespace on input left =0 x0002,/left-adjust output right =0 x0004,/right-adjust output internal =0 x0008,/padding after sign or base indicator dec =0 x0010,/decimal conversion oct =0 x0020,/octal conversion hex =0 x0040,/hexadecimal conversion showbase =0 x0080,/use base indicator on output showpoint =0 x0100,/force decimal point(floating output)uppercase =0 x0200,/upper-case hex output showpos =0 x0400,/add+to positive integers scientific =0 x0800,/use 1.2345E2 floating notation fixed =0 x1000,/use 123.45 floating notation unitbuf =0 x2000,/flush all streams after insertion stdio =0 x4000,/flush stdout,stderr after insertion boolalpha =0 x8000 /insert/extract bools as text or numeric ;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1310.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數0/10/10/10/10/10/10/10/10/10/10/10/10/10/10/1skipwsleftrightdechexshowpointshowposfixedstdiointernaloctshowbaseuppercasescientificunitbuf合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1410.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成員函數成員函數常量名常量名意義意義輸入輸入/輸出輸出skipws 若設置,跳過輸入中的空白;否則,則不舍去這些空白若設置,跳過輸入中的空白;否則,則不舍去這些空白 i left輸出數據按輸出域左邊對齊輸出輸出數據按輸出域左邊對齊輸出oright輸出數據按輸出域右邊對齊輸出輸出數據按輸出域右邊對齊輸出 ointernal輸出數據在輸出域中符號或基指示符左對齊,數字右對齊輸出數據在輸出域中符號或基指示符左對齊,數字右對齊 odec以十進制形式顯示數據以十進制形式顯示數據 i/ooct以八進制形式顯示數據以八進制形式顯示數據 i/ohex以十六進制形式顯示數據以十六進制形式顯示數據 i/oshowbase輸出帶有一個表示制式的輸出帶有一個表示制式的“基指示符基指示符”,如對十六進制,將加,如對十六進制,將加上上0 x oshowpoint浮點輸出時必須帶有一個小數點浮點輸出時必須帶有一個小數點 ouppercase以大寫形式顯示數據中的字母以大寫形式顯示數據中的字母 oshowpos在顯示的正數前加上一個在顯示的正數前加上一個+oscientific以科學記數法顯示浮點數以科學記數法顯示浮點數 ofixed以十進制小數方式顯示浮點數以十進制小數方式顯示浮點數 ounitbuf在插入操作后立即刷新流的緩沖區(qū)在插入操作后立即刷新流的緩沖區(qū) ostdio在插入操作后刷新在插入操作后刷新stdout和和stderr o合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1510.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成員函數成員函數long flags()設置標志值,并返回以前所設置的標志值設置標志值,并返回以前所設置的標志值flags()僅返回當前的標志值僅返回當前的標志值long setf(long,long)用于設置標志字的某一位,第二個參數指定所要操作的位,用于設置標志字的某一位,第二個參數指定所要操作的位,第一個參數指定為該位所設置的值。第一個參數指定為該位所設置的值。long setf(long)設置參數所指定的那些標志位設置參數所指定的那些標志位long unsetf(long)清除參數指定的標志位清除參數指定的標志位int width(int)指定域寬,并返回以前設置的域寬指定域寬,并返回以前設置的域寬int width()僅返回當前域寬僅返回當前域寬char fill(char)設置填充字符,缺省為空格。函數返回以前設置的填充字設置填充字符,缺省為空格。函數返回以前設置的填充字符符char fill()僅返回當前的填充字符僅返回當前的填充字符int precision(int)設置小數點后的數據位數,返回以前設置的位數設置小數點后的數據位數,返回以前設置的位數int precision()僅返回當前的小數點數據位數僅返回當前的小數點數據位數合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1610.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數例:例:/程序:程序:IOS_FMT.cpp/功能:演示利用功能:演示利用ios成成員函數函數進行格式化行格式化輸出出#include /以二以二進制形式制形式輸出當前格式控制出當前格式控制標識字字flagvoid show_flag(long flag)long mask;/用于屏蔽其他位,取出當前位的循用于屏蔽其他位,取出當前位的循環(huán)變量量cout=0 x0001;mask=mask1)if(flag&mask)cout1;else cout0;cout)n;return;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1710.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數int main()long f;f=cout.flags();/按缺省方式按缺省方式輸出出show_flag(cout.flags();/取當前格式取當前格式標識字并以二字并以二進制制輸出出cout123n;cout123.456n;/按科學按科學記數法數法輸出,并在正數前另加上出,并在正數前另加上“+”符號符號cout.setf(ios:showpos|ios:scientific);show_flag(cout.flags();cout123n;cout123.456n;cout.unsetf(ios:showpos|ios:scientific);/取消取消剛才才設置的狀置的狀態(tài)合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1810.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數 /強制浮點數按照定點格式制浮點數按照定點格式顯示示cout.setf(ios:fixed);show_flag(cout.flags();cout0.001234567n;cout.unsetf(ios:fixed);/按大寫的十六按大寫的十六進制制輸出,并在數據前加上十六出,并在數據前加上十六進制的基制的基“0X cout.setf(ios:hex|ios:showbase|ios:uppercase);show_flag(cout.flags();cout123n;cout123.456n;cout.unsetf(ios:hex|ios:showbase|ios:uppercase);/設置置輸出數據出數據寬度度show_flag(cout.flags();cout;cout.width(15);cout123n;cout123.456n;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院1910.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數 /設設置左置左對齊對齊,并且,并且寬寬度不足度不足則則以符號以符號“#”填充填充cout.fill(#);cout.setf(ios:left);show_flag(cout.flags();cout;cout.width(15);cout123n;cout123.456n;cout.unsetf(ios:left);/設設置符號位左置符號位左對齊對齊,數,數值值右右對齊對齊,寬寬度不足以空格填充度不足以空格填充cout.fill();cout.setf(f);cout.setf(ios:internal);show_flag(cout.flags();cout;cout.width(15);cout-123n;cout.unsetf(ios:internal);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2010.3 格式化輸入輸出格式化輸入輸出10.3.1 使用使用ios成成員函數函數 /設設置置輸輸出精度出精度為為小數點后兩位數字小數點后兩位數字cout.setf(ios:fixed);show_flag(cout.flags();cout123n;cout.precision(2);cout123.456n;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2110.3 格式化輸入輸出格式化輸入輸出10.3.2 使用使用輸入入輸出操出操縱符符 操操縱符(符(manipulator):特殊的函數,可直接包含在):特殊的函數,可直接包含在輸入入/輸出表達式中。出表達式中。不不帶形式參數的操形式參數的操縱符定符定義在在 iostream.h 中中 帶形式參數的操形式參數的操縱符定符定義在在 iomanip.h 中中 合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2210.3 格式化輸入輸出格式化輸入輸出10.3.2 使用輸入輸出操縱符使用輸入輸出操縱符 操縱符操縱符功能功能輸入輸入/輸出輸出dec格式為十進制數據格式為十進制數據i/ohex格式為十六進制數據格式為十六進制數據i/ooct格式為八進制數據格式為八進制數據i/osetbase(int n)設置數據的基為設置數據的基為n(n為為0、8、10、16),),0表示使用表示使用缺省值缺省值osetioflags(long)設置特定的標志位設置特定的標志位i/oresetiosflags(long)清除特定的標志位清除特定的標志位i/ows設置跳過輸入中的前導空白字符設置跳過輸入中的前導空白字符Isetw(int)設置域寬設置域寬osetprecision(int)設置浮點輸出的有效數字個數設置浮點輸出的有效數字個數osetfill(int)設置填充字符設置填充字符oendl插入一個換行符并刷新此流插入一個換行符并刷新此流oends插入一個空字符插入一個空字符oflush刷新流刷新流o合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2310.3 格式化輸入輸出格式化輸入輸出10.3.2 使用使用輸入入輸出操出操縱符符#include#include int main()char input_string250;/按大寫十六按大寫十六進制制輸出出coutsetiosflags(ios:uppercase)hex123decendl;/輸出浮點數的精度出浮點數的精度為小數點后兩位小數點后兩位coutsetprecision(5)123.456endl;/輸出的字符串的出的字符串的寬度度為15coutsetw(15)Helloendl;/以以“*”填充填充寬度度為15 的數據空白的數據空白處coutsetw(15)setfill(*)10000endl;/忽略忽略輸入之前的空白入之前的空白coutwsinput_string;coutinput_stringendl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2410.3 格式化輸入輸出格式化輸入輸出10.3.3 格式化格式化輸入入/輸出到字符串出到字符串字符串作字符串作為輸入流:入流:創(chuàng)建建 istrstream 對象象/程序:程序:IN_STR.CPP/功能:將字符串的內容作功能:將字符串的內容作為輸入流入流#includeint main()char str=1234;istrstream buffer1(str);/將整個字符串作將整個字符串作為輸入流入流istrstream buffer2(str,2);/將字符串前兩個字符作將字符串前兩個字符作為輸入流入流int i,j;buffer1i;buffer2j;couti+jendl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2510.3 格式化輸入輸出格式化輸入輸出10.3.3 格式化格式化輸入入/輸出到字符串出到字符串字符串作字符串作為輸出流:出流:創(chuàng)建建 ostrstream 對象象/程序:程序:out_STR.CPP/功能:將數據格式化功能:將數據格式化輸出到字符串中出到字符串中#include#includeint main()ostrstream buffer;char*str;/將數據格式化將數據格式化輸出到出到輸出流出流buffer,注意字符串,注意字符串結束符束符0buffer Salary is setw(10)setfill($)725.5ends;/輸出的出的結果用果用buffer.str()來來訪問str=buffer.str();coutstrendl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2610.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.1 put成成員函數函數ostream類和和istream類提供的成提供的成員函數函數輸出:出:put、write輸出:出:get、read、gcount、getline、peek、putback、ignore可可實現無格式的無格式的輸入入/輸出出cout.put(char)例:例:cout.put(A);cout.put(65);cout.put(A.put(n);cout.put(A).put(n);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2710.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.2 write成成員函數函數cout.write(char*,int)例:例:char buffer=“HAPPY BIRTHDAY”cout.write(buffer,10);10.4.3 read和和gcount成成員函數函數cin.read(char*,int)將指定數量的字符將指定數量的字符輸入到內存中的字符數入到內存中的字符數組int cin.gcount(void)返回最后一次返回最后一次輸入操作入操作讀取的字符數取的字符數合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2810.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.3 read和和gcount成成員函數函數/程序:程序:UN_FMT.CPP/功能:用功能:用write、read和和gcount成成員函數函數實現無格式無格式輸入入輸出出#includeint main()const int SIZE=80;char bufferSIZE=Enter a sentence:;coutbufferendl;cin.read(buffer,20);coutendl The sentence entered was:endl;cout.write(buffer,cin.gcount();coutendl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院2910.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.4 get成成員函數函數 istream.h中中get原型原型 int get();/從從輸入流中入流中讀入一個字符,返回入一個字符,返回該字符作字符作為函數函數調用用值,遇到文件遇到文件結束符,返回束符,返回EOF EOF:文件:文件結束符,束符,為符號常量,符號常量,值為-1 istream&get(char&);/從指定從指定輸入流中入流中讀入一個字符,入一個字符,賦給字符字符變量量ch,遇到文件,遇到文件結束符,返回束符,返回0 inline istream&get(unsigned char&);inline istream&get(signed char&);inline istream&get(char*,int,char=n);/從指定從指定輸入流中入流中讀int個字符,函數在個字符,函數在讀到比到比int少一個字符或遇到字符少一個字符或遇到字符char為止(止(char缺省缺省為n),并),并補上字符串上字符串結束符束符0。inline istream&get(unsigned char*,int,char=n);inline istream&get(signed char*,int,char=n);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3010.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.4 get成成員函數函數/程序:程序:GET.CPP/功能:演示功能:演示get函數的幾種用法函數的幾種用法#include int main()const int SIZE=80;char ch;int character;char buffer1SIZE,buffer2SIZE;/用不用不帶帶參數的參數的get函數函數輸輸入字符,以文件入字符,以文件結結束符束符終終止,并用止,并用put函數函數輸輸出出cout Enter a sentence follwed by end-of-file:endl;while(character=cin.get()!=EOF)cout.put(char)character);cout EOF in this sysytem is:characterendl;cout After input,cin.eof()is:cin.eof()endlendl;cin.clear();/清除清除輸輸入流不正常入流不正常標記標記 合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3110.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.4 get成成員函數函數 /使用使用get(ch)函數函數輸輸入,以文件入,以文件結結束符束符終終止,用止,用put(ch)輸輸出出cout Enter a sentence with get(ch)and output pur(ch):n;while(cin.get(ch)cout.put(ch);cin.clear();/用用cin讀讀取字符流,存入取字符流,存入buffer1,直到遇到空白字符,直到遇到空白字符為為止止cout nEnter a sentence:buffer1;coutn The string read with cin was:endlbuffer1endlendl;/用用帶帶3個參數的個參數的get函數從函數從輸輸入流中入流中讀讀取字符取字符cin.get(buffer2,SIZE);/此此處處未指明分隔符,使用默未指明分隔符,使用默認認的的n字符字符coutThe string read with cin.get was:endlbuffer2endl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3210.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.4 get成成員函數函數 cin.eof()到達文件末尾(即到達文件末尾(即讀到文件到文件結束符)返回非束符)返回非0值,否否則返回返回0;cin.clear()在在讀入入輸入流入流時,讀到文件到文件結束符或束符或讀入非正常字入非正常字符(例如在整數符(例如在整數輸入入時遇到了非數字字符)遇到了非數字字符)時,輸入流入流標記置置為非非0(表示不正常),(表示不正常),clear()函數用于清除函數用于清除輸入流的入流的“不正常不正?!睒擞洝in 用用cin讀取字符流取字符流時,當遇到第一個空白符,當遇到第一個空白符時,認為輸入入結束,并束,并補上字符串上字符串結束符束符0。合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3310.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.5 getline成成員函數函數 inline istream&getline(char*,int,char=n);/從指定從指定輸入流中入流中讀int個字符,函數在個字符,函數在讀到比到比int少一個字符少一個字符或遇到字符或遇到字符char為止(止(char缺省缺省為n),并),并補上字符串上字符串結束符束符0。與。與帶3個參數個參數get成成員函數不同的是函數不同的是geline 要從要從輸入入流中流中刪除分隔符(即除分隔符(即讀取并取并刪除它),而并不是把它存放在除它),而并不是把它存放在buffer中。中。inline istream&getline(unsigned char*,int,char=n);inline istream&getline(signed char*,int,char=n);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3410.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.5 getline成成員函數函數 /程序:程序:GETLINE.CPP/功能:演示功能:演示getline函數的用法函數的用法#include int main()const int SIZE=80;char bufferSIZE;cout Enter a sentence:buffer;coutn The string read with cin is:endlbufferendlendl;/用用getline函數函數讀入入19個字符,或遇個字符,或遇/終止止cin.getline(buffer,20,/);cout The second part is:n;coutbufferendlendl;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3510.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.5 getline成成員函數函數 /用用getline函數函數讀入入19個字符,或遇個字符,或遇n終止止cin.getline(buffer,20,n);cout The third part is:n;coutbufferendlendl;/用用get函數函數讀入入19個字符,或遇個字符,或遇/終止止cin.get(buffer,20,/);cout The forth part is:n;coutbufferendlendl;cout.put(char)cin.get();/此此時/還在在輸入流中,用入流中,用get()讀出并用出并用put輸出出coutendl;return 0;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3610.4 常用成員函數輸入常用成員函數輸入/輸出輸出10.4.6 peek、putback、ignore成成員函數函數 cin.peek()返回返回輸入流下一個字符,但并不將其從入流下一個字符,但并不將其從輸入流中入流中刪除。除。調用:用:ch=cin.peek();/ch是整型是整型變量量 cin.putpack(ch)將字符將字符變量量ch中字符放回中字符放回輸入流中。入流中。cin.ignore(n,ch)跳跳過輸入流中入流中n個字符,或遇到個字符,或遇到ch中指定的中指定的終止字符止字符時結束。束。n 缺省缺省為1,ch 缺省缺省為EOF。合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3710.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.1 重重載流的插入運算符流的插入運算符 class COMPLEX private:public:friend ostream&operator (ostream&stream,COMPLEX&c);ostream&operator (ostream&stream,COMPLEX&c)stream(c.Real0)?+:)c.Imag(istream&stream,COMPLEX&c);istream&operator (istream&stream,COMPLEX&c)coutc.Real;coutc.Imag;return stream;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院3910.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例#include#include math.h#include conio.hclass COMPLEX private:double Real;double Imag;public:COMPLEX();COMPLEX(const COMPLEX&c);COMPLEX(double r,double i=0);void operator=(COMPLEX&d);friend double abs(COMPLEX&c);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4010.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 friend COMPLEX conj(COMPLEX&c);friend COMPLEX operator+(COMPLEX c1,COMPLEX c2);friend COMPLEX operator-(COMPLEX c1,COMPLEX c2);friend COMPLEX operator*(COMPLEX c1,COMPLEX c2);friend COMPLEX operator/(COMPLEX c1,COMPLEX c2);friend int operator=(COMPLEX&c1,COMPLEX&c2);friend int operator!=(COMPLEX&c1,COMPLEX&c2);friend ostream&operator (istream&stream,COMPLEX&c);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4110.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 COMPLEX:COMPLEX()Real=0.0;Imag=0.0;COMPLEX:COMPLEX(const COMPLEX&c)Real=c.Real;Imag=c.Imag;COMPLEX:COMPLEX(double r,double i)Real=r;Imag=i;void COMPLEX:operator=(COMPLEX&d)Real=d.Real;Imag=d.Imag;double abs(COMPLEX&c)return sqrt(c.Real*c.Real+c.Imag*c.Imag);合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4210.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 COMPLEX conj(COMPLEX&c)COMPLEX temp;temp.Real=c.Real;temp.Imag=-c.Imag;return temp;COMPLEX operator+(COMPLEX c1,COMPLEX c2)COMPLEX temp;temp.Real=c1.Real+c2.Real;temp.Imag=c1.Imag+c2.Imag;return temp;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4310.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 COMPLEX operator-(COMPLEX c1,COMPLEX c2)COMPLEX temp;temp.Real=c1.Real-c2.Real;temp.Imag=c1.Imag-c2.Imag;return temp;COMPLEX operator*(COMPLEX c1,COMPLEX c2)COMPLEX temp;temp.Real=c1.Real*c2.Real-c1.Imag*c2.Imag;temp.Imag=c1.Real*c2.Imag+c1.Imag*c2.Real;return temp;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4410.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 int operator=(COMPLEX&c1,COMPLEX&c2)return(c1.Real=c2.Real)&(c1.Imag=c2.Imag);int operator!=(COMPLEX&c1,COMPLEX&c2)return(c1.Real!=c2.Real)|(c1.Imag!=c2.Imag);COMPLEX operator/(COMPLEX c1,COMPLEX c2)COMPLEX temp;double den;den=abs(c2)*abs(c2);temp.Real=(c1.Real*c2.Real+c1.Imag*c2.Imag)/den;temp.Imag=(c1.Imag*c2.Real-c1.Real*c2.Imag)/den;return temp;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4510.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作10.5.3 實例例 ostream&operator (ostream&stream,COMPLEX&c)stream(c.Real0)?+:)c.Imag(istream&stream,COMPLEX&c)coutc.Real;coutc.Imag;return stream;合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4610.5.3 實例例void main()COMPLEX a,b,c;double x=10.0;cout Input the first complex a:a;cout Input the second complex b:b;c=conj(a);couta c bendl;c=a+b;coutc ;c=a-b;coutc ;c=a*b;coutc ;c=a/b;coutcendl;c=a+x;coutc ;c=a-x;coutc ;c=a*x;coutc ;c=a/x;coutcendl;c=x+a;coutc ;c=x-a;coutc ;c=x*a;coutc ;c=x/a;coutcendl;cout(a=c)endl;cout(a!=c)endl;getch();10.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4710.5.4 設計自己的自己的輸入入/輸出操出操縱符符輸出操出操縱符定符定義形式:形式:ostream&操操縱符名字符名字(ostream&stream)自定自定義操操縱符代符代碼 return stream;兩種情況需兩種情況需設計操操縱符函數符函數:n 為新新設備定定義操操縱符使得向新符使得向新設備輸出更方便;出更方便;n 需要重復使用的操作序列需要重復使用的操作序列組合定合定義在新操在新操縱符中。符中。操操縱符用于符用于輸出操作且不出操作且不帶參數參數時,即便空,即便空圓括號括號對也不能出也不能出現。10.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4810.5.4 設計自己的自己的輸入入/輸出操出操縱符符#include#include ostream&dollar_format(ostream&stream)/定制自己的定制自己的輸出操出操縱符符1stream.setf(ios:left);streamsetw(12)setprecision(2)setfill($);return stream;ostream&tab(ostream&stream)/定制自己的定制自己的輸出操出操縱符符2return streamt;int main()cout725.5endl;coutdollar_format725.5endl;coutatabbtabcendl;return 0;10.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院4910.5.4 設計自己的自己的輸入入/輸出操出操縱符符輸入操入操縱符定符定義形式:形式:istream&操操縱符名字符名字(istream&stream)自定自定義操操縱符代符代碼 return stream;#include istream&prompt(istream&stream)/定制自己的定制自己的輸入操入操縱符符couthex;return stream;int main()int input;cinpromptinput;coutinputendl;return 0;10.5 設計自己的輸入設計自己的輸入/輸出操作輸出操作合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院50流狀流狀態(tài)標志字志字enum io_state goodbit=0 x00,/不不設置任何位,一切正常置任何位,一切正常 eofbit=0 x01,/輸入流已入流已經結束,無字符可束,無字符可讀入入 failbit=0 x02,/上次上次讀寫操作失寫操作失敗,但流仍可使用,但流仍可使用 badbit=0 x04,/試圖作無效的作無效的讀/寫操作,流不再可用寫操作,流不再可用 hardfail=0 x80 /不可恢復的不可恢復的嚴重重錯誤;ios類提供的提供的檢測或或設置流狀置流狀態(tài)的成的成員函數:函數:int rdstate();/返回流的當前狀返回流的當前狀態(tài)標識字字 int eof();/返回非返回非0值表示到達文件尾表示到達文件尾 int fail();/返回非返回非0值表示操作失表示操作失敗 int bad();/返回非返回非0值表示出表示出現錯誤 int good();/返回非返回非0值表示流操作正常表示流操作正常 int clear(int flag=0);/將流的狀將流的狀態(tài)設置置為flag10.6 檢測流操作的錯誤檢測流操作的錯誤合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5110.7 文件流文件流讀寫寫文件的文件的過程:程:o往(文件)流往(文件)流中中插入一個字符;插入一個字符;o從(文件)流中提取一個字符;從(文件)流中提取一個字符;o打開文件并打開文件并獲得文件句柄(建立文件與流得文件句柄(建立文件與流連接)接)打開一個文件流打開一個文件流,以便用來,以便用來讀和寫。使用完后,需和寫。使用完后,需要要關關閉該文件流文件流。o#include ftream.h合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5210.7.1 文件的打開與關文件的打開與關閉C+的三種文件流的三種文件流n輸入文件流:入文件流:類 ifstreamn輸出文件流:出文件流:類 ofstreamn輸入入/輸出文件流:出文件流:類 fstream 例:例:創(chuàng)建文件流建文件流對象象#include void main()/建立不同的文件流建立不同的文件流 ifstream in;/input file stream只能只能讀ofstream out;/output file stream只能寫只能寫fstream both;/I/O file stream10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5310.7.1 文件的打開與關文件的打開與關閉1.使用函數使用函數 open()打開文件打開文件open()的函數原型:的函數原型:void open(const char*filename,int mode,int prot=filebuf:openprot);nfilename:文件名字,可含路徑:文件名字,可含路徑nmode:文件的打開模式:文件的打開模式nprot:文件的:文件的訪問方式:方式:普通(普通(0)、只)、只讀(1)、)、隱藏藏(2)、系)、系統(tǒng)文件(文件(4)。)。一般使用缺省一般使用缺省值0。10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5410.7.1 文件的打開與關文件的打開與關閉文件打開模式文件打開模式mode ios類中定中定義了一了一組枚枚舉常量描述常量描述這些模式:些模式:enum open_mode in =0 x01,/打開文件打開文件進行行讀操作操作 out =0 x02,/打開文件打開文件進行寫操作行寫操作 ate =0 x04,/打開打開時文件指文件指針定位到文件尾(定位到文件尾(at end)app =0 x08,/添加模式:所有增加都在文件尾部添加模式:所有增加都在文件尾部(append)trunc =0 x10,/如果文件已存在如果文件已存在則清空原文件清空原文件 nocreate =0 x20 /如果文件不存在如果文件不存在則打開失打開失敗 noreplace=0 x40,/如果文件存在如果文件存在則打開失打開失敗 binary =0 x80 /二二進制文件制文件 ;10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5510.7.1 文件的打開與關文件的打開與關閉oifstream類中,中,open()的的mode參數缺省參數缺省值是是ios:inoofstream類中,中,open()的的mode參數缺省參數缺省值是是ios:outo缺省方式下,文件以文本方式打開缺省方式下,文件以文本方式打開omode參數用位或運算參數用位或運算|組合枚合枚舉常量常量ofstreamofile;ofile.open(“test.bak”,ios:out|ios:binary);/以二以二進制形式打開當前目制形式打開當前目錄下的下的test.bak文件,準文件,準備進行行寫操作寫操作 10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5610.7.1 文件的打開與關文件的打開與關閉ofstreamofile;/創(chuàng)建一個建一個輸出文件流出文件流ofile.open(“text.txt”);/打開文本文件打開文本文件text.txt,使,使ofile流與流與該文文件相關件相關聯/寫文件寫文件text.txtofile.close();/關關閉text.txt文件文件ofile.open(“other.txt”);/使使ofile流與另一文件流與另一文件other.txt相關相關聯:重用流重用流/寫文件寫文件other.txtofile.close();/關關閉other.txt文件文件10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5710.7.1 文件的打開與關文件的打開與關閉2.通通過流流類的構造函數打開文件的構造函數打開文件在在創(chuàng)建流建流時調用構造函數直接與某文件相關用構造函數直接與某文件相關聯ofstream ofile(“text.txt”);/創(chuàng)建一個建一個輸出文件流出文件流ofile,打開文件,打開文件text.txt,使,使ofile流與流與該文文件相關件相關聯/寫文件寫文件text.txtofile.close();/關關閉text.txt文件文件流流類的構造函數的參數和缺省的構造函數的參數和缺省值與與openopen函數相同,用于在函數相同,用于在創(chuàng)建建一個流一個流時就使它與某個文件相關就使它與某個文件相關聯10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5810.7.1 文件的打開與關文件的打開與關閉 打開文件失打開文件失敗,流狀,流狀態(tài)標識字中的字中的faibit、badbit或或hardbit將被置將被置為1,并且在,并且在ios類中重中重載的的“!”運算符返回非運算符返回非0值。異常模式異常模式處理方式:理方式:ifstream input_file(“D:VCmydata.txt”)if(!Input_file)警告打開文件失警告打開文件失敗;退出程序退出程序;繼續(xù)正常的文件操作正常的文件操作;10.7 文件流文件流合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院5910.7.2 文本文件的操作文本文件的操作例例1:把一個整數、一個浮點數和一個字符串寫到名:把一個整數、一個浮點數和一個字符串寫到名為out.txt的文的文本文件中本文件中#include int main()ofstream outfile;float f=123.23;int n=10;outfile.open(out.txt);if(!outfile)coutCannot open out.txt for output!n;return 1;/返回返回1表示打開文件不成功表示打開文件不成功outfile n f n;outfileThis is a text file;outfile.close();return 0;10.7 文件流文件流程序執(zhí)行后,在當前目錄下生程序執(zhí)行后,在當前目錄下生成文件成文件out.Txt,文件內容如下:文件內容如下:10 123.230003 This is a text file合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院6010.7.2 文本文件的操作文本文件的操作例例2:從例從例1程序建立的文件中程序建立的文件中讀入相關數據入相關數據#include#include int main()ifstream infile;infile.open(out.txt);if(!infile)cout n f ch str;cout n f ch n;cout str 運算符號跳過空白符號(如空運算符號跳過空白符號(如空格,回車),然后讀入對應于輸入對象類型的格,回車),然后讀入對應于輸入對象類型的字符字符合肥工業(yè)大學合肥工業(yè)大學 計算機與信息學院計算機與信息學院6110.7.2 文本文件的操作文本文件的操作例例3:文件拷:文件拷貝#include#include int CopyFile(char*file_from,char*file_to)/file_from:輸入文件名入文件名(源文件源文件);file_to:輸出文件名出文件名(目目標文件文件)char ch;/文件不存在文件不存在則打開失打開失敗ifstream from(file_from,ios:in|ios:nocreate);/以文本方式打開以文

注意事項

本文(程序設計基礎:10第十章 C++的輸入輸出)為本站會員(努力****83)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


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