




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、會計學1輸入輸出流輸入輸出流第一頁,共106頁。 內存 輸入設備 輸出設備輸入流輸出流第2頁/共106頁第二頁,共106頁。(類)的數據。(類)的數據。n處理大容量文件時最好使用無格式處理大容量文件時最好使用無格式I/O。第3頁/共106頁第三頁,共106頁。nstrstream.h:通過字符數組的讀寫:通過字符數組的讀寫實現內存格式實現內存格式(g shi)化。化。nstdiostream.h:提供混合使用:提供混合使用C和和C+的風格。的風格。第4頁/共106頁第四頁,共106頁。C+的流類庫有streambuf和ios兩個(lin )平行的基類,ios類是流的基類,它派生的的形式如下:f
2、streamofstreamifstreamostreamistreamiosiostream第5頁/共106頁第五頁,共106頁。 內存 輸入設備 輸出設備輸入流輸出流istreamostream第6頁/共106頁第六頁,共106頁。cincin是類是類istreamistream的對象,默認輸入是鍵盤的對象,默認輸入是鍵盤coutcout是類是類ostreamostream的對象,默認輸出的對象,默認輸出(shch)(shch)是屏幕是屏幕cerrcerr是是ostreamostream類的對象,與標準錯誤輸出類的對象,與標準錯誤輸出(shch)(shch)設備相關聯,是非緩沖型標準出錯流
3、對象設備相關聯,是非緩沖型標準出錯流對象clogclog是是ostreamostream類的對象,與標準錯誤輸出類的對象,與標準錯誤輸出(shch)(shch)設備相關聯,是緩沖型標準出錯流對象設備相關聯,是緩沖型標準出錯流對象 內存 輸入設備 輸出設備輸入流輸出流istream: cinostream: cout第7頁/共106頁第七頁,共106頁。ncout 和和 完全能夠識別所處完全能夠識別所處理的類型,只要正確聲明了理的類型,只要正確聲明了grade的類型。的類型。n第8頁/共106頁第八頁,共106頁。第9頁/共106頁第九頁,共106頁。第10頁/共106頁第十頁,共106頁。第1
4、1頁/共106頁第十一頁,共106頁。niosios類將它聲明類將它聲明(shngmng)(shngmng)為為受保護成員。受保護成員。x_flagsx_flags的每一位的每一位表示格式控制的一個狀態標志表示格式控制的一個狀態標志第12頁/共106頁第十二頁,共106頁。值值“1”“1”,否則該位取值,否則該位取值“0”“0”。第13頁/共106頁第十三頁,共106頁。格式標志名含 義 ios:left輸出數據按域寬左對齊輸出 ios:right輸出數據按域寬右對齊輸出 ios:scientific使用科學計數法表示浮點數 ios:fixed使用定點形式表示浮點數 ios:dec轉換基數為十
5、進制形式 ios:hex轉換基數為十六進制形式 ios:oct轉換基數為八進制形式 ios:uppercase十六進制形式和科學計數法輸出時,表示數值的字符一律為大寫(缺省為小寫) ios:showpos在正數前面添加一個“+”號 ios:showbase輸出帶有一個表示制式的字符(如“X”表示十六進制,“O”表示八進制) ios:showpoint輸出浮點數時必須帶有一個小數點 ios:skipws在輸入時跳過空格第14頁/共106頁第十四頁,共106頁。某一個標志位。某一個標志位。n還 有 表 示 對 齊 標 志 位 的還 有 表 示 對 齊 標 志 位 的ios:leftios:left
6、、ios:rightios:right和和ios:internalios:internal,以及表示實數,以及表示實數格式標志位的格式標志位的ios:scientificios:scientific和和ios:fixedios:fixed,這些互斥屬性也,這些互斥屬性也不能同時設置。不能同時設置。第15頁/共106頁第十五頁,共106頁。第16頁/共106頁第十六頁,共106頁。成員函數作用int ios:width()返回當前的寬度設置int ios:width(int w)設置寬度并返回前一次的設置int ios:precision(int p)設置精度并返回前一次設置值char ios:
7、fill()返回當前空位填充的字符char ios:fill(char ch)設置空位填充字符long ios:setf(long flags)設置狀態標志long ios:unsetf(long flags)清除狀態標志long ios:flags()測試狀態標志long ios:flags(long flags)設置狀態標志并返回前一次的狀態標志第17頁/共106頁第十七頁,共106頁。第18頁/共106頁第十八頁,共106頁。n第19頁/共106頁第十九頁,共106頁。n(shch)精度精度ncoutdiendl;n第20頁/共106頁第二十頁,共106頁。n第21頁/共106頁第二十一
8、頁,共106頁。nn第22頁/共106頁第二十二頁,共106頁。nfor(i=0;i5;i+)nncout.width(8); /設置當前寬度為設置當前寬度為8ncoutni;n第23頁/共106頁第二十三頁,共106頁。nncout.unsetf(ios:oct|ios:showbase|ios:showpos);n/解除八進解除八進制、顯示基及正號制、顯示基及正號ncoutn8endl;第24頁/共106頁第二十四頁,共106頁。縱符在縱符在iomanip.h頭文件中定義。頭文件中定義。n使用帶參數的操縱符,應在程使用帶參數的操縱符,應在程序中用序中用#include預處理命令將預處理命令
9、將iomanip.h頭文件加入到源程序頭文件加入到源程序第25頁/共106頁第二十五頁,共106頁。名 稱含 義dec以十進制形式輸入或輸出整型數,可用于輸入或輸出hex以十六進制形式輸入或輸出整型數,可用于輸入或輸出oct以八進制形式輸入或輸出整型數,可用于輸入或輸出ws用于在輸入時跳過開頭的空格符,僅用于輸入endl插入一個空字符,通常用來結束一個字符串,僅用于輸出flush刷新一個輸出流,僅用于輸出lock對文件句柄加鎖unlock對文件名句柄解鎖第26頁/共106頁第二十六頁,共106頁。名 稱含 義resetiosflags(long f)關閉由參數f指定的格式標志,可用于輸入或輸出
10、setiosflags(long f)設置由參數f指定的格式標志,可用于輸入或輸出setfill(int c)c為填充字符,缺省時為空格,可用于輸入或輸出setprecision(int n)設置數據小數部分的位數,缺省時小數的位數為6,可用于輸入或輸出setw(int n)設置寬度為n,可用于輸入或輸出第27頁/共106頁第二十七頁,共106頁。第28頁/共106頁第二十八頁,共106頁。coutwsinput_string; /忽略輸入之前的空白(輸入時可在忽略輸入之前的空白(輸入時可在前面加上空格、制表符或回車)前面加上空格、制表符或回車)coutinput_stringendl;第29
11、頁/共106頁第二十九頁,共106頁。第30頁/共106頁第三十頁,共106頁。3.16227811 0121.0 3.316625 #include #include #include using namespace std;void main()double number, square, square_root; cout numt squarett square rootn; cout n; number = 1.0; cout.setf(ios:fixed); for (int i=1; i 12; i+) square = number*number; square_root =
12、sqrt(number); cout setfill(0) setw(2) setprecision(0) number t; cout setw(6) setprecision(1) square tt; cout.width(8); cout.precision(6); cout square_root endl; number += 1.0; 第31頁/共106頁第三十一頁,共106頁。第32頁/共106頁第三十二頁,共106頁。加入加入(jir)語句語句cout.setf(ios:fixed); 3.141593.1416加入加入(jir)語句語句cout.setf(ios:scien
13、tific); 3.141593.1416e+000下列程序以成員函數的方式控制輸出下列程序以成員函數的方式控制輸出(shch)的精度的精度: 第33頁/共106頁第三十三頁,共106頁。第34頁/共106頁第三十四頁,共106頁。n第35頁/共106頁第三十五頁,共106頁。coutsetprecision(4)iendl; 第36頁/共106頁第三十六頁,共106頁。第37頁/共106頁第三十七頁,共106頁。第38頁/共106頁第三十八頁,共106頁。第39頁/共106頁第三十九頁,共106頁。第40頁/共106頁第四十頁,共106頁。第41頁/共106頁第四十一頁,共106頁。#inc
14、lude #include using namespace std;void main()char ch, buf30;int i=0; for (ch = a; ch = m; ch+) bufi+ = ch; bufi = 0; cout.write(buf, strlen(buf); cout.put(n); 第42頁/共106頁第四十二頁,共106頁。函數名稱原 型get()istream & get( unsigned char &ch );read()istream & read( unsigned char *buf, int num);getline()
15、istream & getline( char *line, int n, char=n );第43頁/共106頁第四十三頁,共106頁。第44頁/共106頁第四十四頁,共106頁。#include using namespace std;void main()char ch; cout Enter a line: ; while (ch = cin.get() != n)/不帶參數(cnsh)的get() cout.put(ch); cout endl; cout Enter another line: ; while (!cin.eof() cin.get(ch);/帶參數(cns
16、h)的get(ch) cout.put(ch); 第45頁/共106頁第四十五頁,共106頁。n所以除非將分隔符從輸入流中刪除所以除非將分隔符從輸入流中刪除(可以使用(可以使用cin.ignore()否則緊()否則緊接著的第二個接著的第二個get操作結果就是空串操作結果就是空串第46頁/共106頁第四十六頁,共106頁。第47頁/共106頁第四十七頁,共106頁。ncoutEnter another sentence:n;ncin.get(buffer2,80);/cin.get(buffer2,80,g);ncoutbuffer2 is:buffer2endlendl;n 第48頁/共106
17、頁第四十八頁,共106頁。參數為作為分界字符,默認識參數為作為分界字符,默認識是是n,換行符。,換行符。n與帶三個參數的與帶三個參數的 get不同的是,不同的是,getline會去除輸入流中的分隔會去除輸入流中的分隔字符,但不會把它存放在字符字符,但不會把它存放在字符數組中。數組中。第49頁/共106頁第四十九頁,共106頁。ncoutEnter the 2th sentence:n; ncin.get(buffer2,80,g);/cin.getline(buffer2,80,g);ncoutbuffer2 is:buffer2endlendl;ncoutEnter the 3th sent
18、ence:n;ncin.getline(buffer3,80); ncoutbuffer3 is:buffer3endlendl; 第50頁/共106頁第五十頁,共106頁。第51頁/共106頁第五十一頁,共106頁。第52頁/共106頁第五十二頁,共106頁。nn/ 函數體函數體nreturn stream;n第53頁/共106頁第五十三頁,共106頁。operator(istream&stream, Complex &obj);n;第54頁/共106頁第五十四頁,共106頁。 else stream obj.real endl;return stream;第55頁/共106
19、頁第五十五頁,共106頁。第56頁/共106頁第五十六頁,共106頁。第57頁/共106頁第五十七頁,共106頁。&t);第58頁/共106頁第五十八頁,共106頁。nchar line5;npublic:nfriend ostream& operator(istream& input,PhoneNumber& num);n;第59頁/共106頁第五十九頁,共106頁。第60頁/共106頁第六十頁,共106頁。n100000內存中占內存中占4個字節,如果按內部個字節,如果按內部格式直接輸出,在磁盤文件中格式直接輸出,在磁盤文件中占占4個字節,如果將它轉換為個字節
20、,如果將它轉換為ASCII碼形式輸出,則要占碼形式輸出,則要占6個個字節。字節。第61頁/共106頁第六十一頁,共106頁。第62頁/共106頁第六十二頁,共106頁。第63頁/共106頁第六十三頁,共106頁。第64頁/共106頁第六十四頁,共106頁。 內存 文件 文件輸入流輸出流ifstream: inofstream: outfile1.txtfile2.txt第65頁/共106頁第六十五頁,共106頁。件的打開方式,它說明文件將如件的打開方式,它說明文件將如何被打開。何被打開。n第第3個參數個參數 access 表示表示(biosh)文文件的訪問方式,它說明文件將如件的訪問方式,它說
21、明文件將如何被訪問。何被訪問。naccess的缺省值是的缺省值是:filebuf:openprot第66頁/共106頁第六十六頁,共106頁。容不變。容不變。打開文件時要注意因何操作而打打開文件時要注意因何操作而打開文件,不能用錯打開方式。開文件,不能用錯打開方式。第67頁/共106頁第六十七頁,共106頁。打開方式打開方式功功 能能ios:in以只讀方式打開文件以只讀方式打開文件ios:out以寫方式打開文件以寫方式打開文件ios:app以添加在文件尾部的追加方式打開文件以添加在文件尾部的追加方式打開文件ios:ate文件打開時文件打開時,文件指針位于文件尾文件指針位于文件尾ios:trun
22、c同名文件被刪除同名文件被刪除ios:binary以二進制形式打開文件以二進制形式打開文件,若該文件不存在若該文件不存在,則打開則打開操作失敗操作失敗ios:nocreate打開的文件不存在時失敗打開的文件不存在時失敗os:noreplace打開的文件存在時失敗打開的文件存在時失敗第68頁/共106頁第六十八頁,共106頁。第69頁/共106頁第六十九頁,共106頁。input_file(“C:CONFIG.SYS”); /帶參構造函數帶參構造函數n它聲明一個輸入流對象的同時,它聲明一個輸入流對象的同時,將這個流與文件將這個流與文件C:CONFIG.SYS連接起來,使流連接起來,使流input
23、_file可以用文可以用文本形式對流文件進行讀操作。本形式對流文件進行讀操作。第70頁/共106頁第七十頁,共106頁。.nin.close();n ofstream out;nout.open(file2.txt); .nout.close();第71頁/共106頁第七十一頁,共106頁。第72頁/共106頁第七十二頁,共106頁。ofstream outfile;ofstream outfile;/建立輸出流建立輸出流outfile.open(“c:file1.txt”, outfile.open(“c:file1.txt”, ios:out); ios:out); /打開文件打開文件fo
24、r(i=0;i10;i+)for(i=0;i10;i+)outfileai“ ”;outfileai“ ”;/寫入到文件寫入到文件outfileendl;outfileendl;outfile.close();outfile.close();/關閉文件關閉文件第73頁/共106頁第七十三頁,共106頁。第74頁/共106頁第七十四頁,共106頁。第75頁/共106頁第七十五頁,共106頁。第76頁/共106頁第七十六頁,共106頁。nn /按格式寫入文件按格式寫入文件(wnjin)n ofstream outfile(c:data.txt); n outfile ch j d str1 ch1;coutch1 ch j d str1 str2;n cout ch endl j endl d endl str1 endln str2 endl;n infile.close();第78頁/共106頁第七十八頁,共106頁。第79頁/共106頁第七十九頁,共106頁。第80頁/共106頁第八十頁,共106頁。destfile.put(ch);sourcefile.close ();destfile.close();第81頁/共106頁第八十一頁,共106頁。個字節個字節(z ji),雙精度數占,雙精度數占8個個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業生產安全事故分析報告
- 工業自動化與綠色制造
- 工作中的數據分析與應用
- 工業自動化的發展現狀與未來趨勢分析
- 工作中的個人性格與沖突處理
- 工業領域新能源技術應用
- 工作環境改善的實踐與思考
- 工廠企業消防安全管理與應急預案
- 工廠生產線的環境溫控系統設計
- 工程檔案資料管理的標準化與規范化研究
- 工藝安全檢查表
- 亞聲威格入職培訓測試(武漢)附有答案
- 洗染行業消費糾紛處理指南
- GB/T 19995.1-2005天然材料體育場地使用要求及檢驗方法第1部分:足球場地天然草面層
- 全民經紀人協議書
- 護理學課件-鋪床法
- GB∕T 31062-2014 聚合物多元醇
- 人教版 2021-2022學年 五年級下冊數學期末測試試卷(一)含答案
- 西門子SAMA圖DEH邏輯講解
- 國家開放大學《土木工程力學(本)》形考作業1-5參考答案
- 公司盡職調查提綱
評論
0/150
提交評論