資源描述:
《C++ 語言電子檔.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第10章C++語言的輸入/輸出操作10.1I/O流類庫概述10.2標(biāo)準(zhǔn)文件的輸入/輸出操作10.3格式輸出操作10.4磁盤文件的操作10.1I/O流類庫概述10.1.1輸入/輸出流數(shù)據(jù)流按其流向可分為輸入流和輸出流兩種。輸入流指的是字節(jié)流從輸入設(shè)備流向內(nèi)存。輸出流指的是字節(jié)流從內(nèi)存流向輸出設(shè)備。輸入流和輸出流都是帶有內(nèi)存緩沖區(qū)的。在C++語言中,將輸入流和輸出流都分別定義為類,這些類放在C++語言的I/O流類庫中,使用它們定義的對象稱為流對象。1.通用I/O流類庫使用這些功能時應(yīng)包含頭文件iostream.h。2.文件I/O流類庫使用有關(guān)文件讀寫操作時,應(yīng)包含fstr
2、eam.h文件。10.1.2I/O流類庫的主要功能10.2標(biāo)準(zhǔn)文件的輸入/輸出操作1.使用預(yù)定義的插入符這是一種最簡單的,也是最常用的方式。格式如下:cout<<<表達式>見書中例10.1,例10.2。10.2.1屏幕輸出操作格式如下:ostream&<流對象名>.put(charc);見書中例10.3,2.使用成員函數(shù)put()輸出一個字符格式如下:cout.write(constchar*str,intn)見書中例10.43.使用成員函數(shù)write()輸出一個字符串1.使用預(yù)定義的提取符10.2.2鍵盤輸入操作格式如下:cin>><變量名>從鍵盤上輸入數(shù)據(jù)是帶緩沖
3、區(qū)的,輸入完數(shù)據(jù)按回車鍵時才形成輸入流。輸入流中數(shù)據(jù)項的默認分隔符為空白符。見書中例10.5,例10.6。格式如下:charistream::get()見書中例10.7。2.使用成員函數(shù)get()獲取一個字符格式如下:cin.getline(char*buf,intn,chardeline='')見書中例10.8。3.使用成員函數(shù)getline()讀取一行字符格式如下:cin.read(char*buf,intn)見書中例10.9。4.使用成員函數(shù)read()讀取若干字符10.3格式輸出操作10.3.1使用流對象的成員函數(shù)進行格式輸出1.控制輸入/輸出格式的標(biāo)志位
4、用來控制輸入/輸出格式的標(biāo)志位如表10.1所示。表10.1ios標(biāo)志位標(biāo)志位值含義輸入/輸出skipws0x0001跳過輸入中的空白符Ileft0x0002輸出數(shù)據(jù)按輸出域左對齊Oright0x0004輸出數(shù)據(jù)按輸出域右對齊Ointernal0x0008數(shù)據(jù)的符號左對齊,數(shù)據(jù)本身右對齊,符號和數(shù)據(jù)之間為填充符Odec0x0010轉(zhuǎn)換基數(shù)為十進制形式Ooct0x0020轉(zhuǎn)換基數(shù)為八進制形式I/Ohex0x0040轉(zhuǎn)換基數(shù)為十六進制形式I/Oshowbase0x0080輸出的數(shù)值數(shù)據(jù)前面帶有基數(shù)符號(0或0x)I/Oshowpoint0x0100浮點數(shù)輸出帶有小數(shù)點Oup
5、percase0x0200用大寫字母輸出十六進制數(shù)值Oshowpos0x0400正數(shù)前面帶有“+”符號Oscientific0x0800浮點數(shù)輸出采用科學(xué)表示法Ofixed0x1000使用定點數(shù)形式表示浮點數(shù)Ounitbuf0x2000完成輸入操作后立即刷新流的緩沖區(qū)Ostdio0x4000完成輸入操作后刷新系統(tǒng)的stdout.stderrO下面介紹一些用來控制輸出格式的成員函數(shù)。(1)設(shè)置標(biāo)志字的成員函數(shù)longflags()該函數(shù)返回當(dāng)前標(biāo)志字。longflag(long)該函數(shù)使用參數(shù)更新標(biāo)志字,并返回更新前的標(biāo)志字。longsetf(longsetbits,l
6、ongfield)2.控制輸出格式的成員函數(shù)該函數(shù)用來將field參數(shù)所指定的標(biāo)志位清零,將setbits為1的標(biāo)志位置1,并返回設(shè)置前的標(biāo)志字。longsetf(long)該函數(shù)用來設(shè)置參數(shù)的指定的那些標(biāo)志位,并返回更新前的標(biāo)志字。longunsetf(long)該函數(shù)用來清除參數(shù)所指定的那些標(biāo)志位,并返回更新前的標(biāo)志字。(2)設(shè)置輸出數(shù)據(jù)所占寬度的成員函數(shù)intwidth()該函數(shù)用來返回當(dāng)前輸出的數(shù)據(jù)寬度。intwidth(int)該函數(shù)用來用其參數(shù)設(shè)置當(dāng)前輸出的數(shù)據(jù)寬度,并返回更新前的寬度值。(3)設(shè)置填充符的成員函數(shù)charfill()該函數(shù)用來返回當(dāng)前所用
7、的填充符。charfill(char)該函數(shù)用來設(shè)置當(dāng)前的填充符為參數(shù)給定的字符,并返回更新前的填充符。(4)設(shè)置浮點數(shù)輸出精度的成員函數(shù)intprecision()該函數(shù)用來返回當(dāng)前浮點數(shù)的有效數(shù)字的個數(shù)。浮點數(shù)的精度是用有效數(shù)字個數(shù)來表示的,其個數(shù)越大,表示精度越高。intprecision(int)該函數(shù)用來設(shè)置當(dāng)前浮點數(shù)輸出時有效數(shù)字個數(shù)為該函數(shù)所指定的參數(shù)值,并返回更新前的值。下面給出在默認情況下的某些參數(shù)的值:①數(shù)據(jù)輸出寬度默認情況下為實際寬度;②默認情況下填空符為空格符;③單精度浮點數(shù)最多提供7位有效數(shù)字,雙精度浮點數(shù)最多提供15位有效