freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第14章輸入輸出與文件(已修改)

2024-10-14 16:35 本頁(yè)面
 

【正文】 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 1 第 14章 輸入輸出與文件 ? 輸入輸出是指程序與外部設(shè)備交換信息 ? C++把輸入輸出看成是一個(gè)數(shù)據(jù)流 ? 輸入流:外圍設(shè)備流向內(nèi)存的數(shù)據(jù) ? 輸出流:內(nèi)存流向外圍設(shè)備的數(shù)據(jù) ? 在 C++中,輸入輸出不是語(yǔ)言所定義的部分,而是由標(biāo)準(zhǔn)庫(kù)提供。 ? C++的輸入輸出分為: ? 基于控制臺(tái)的 I/O ? 基于文件的 I/O ? 基于字符串的 I/O 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 2 輸入輸出與文件 ? 流與標(biāo)準(zhǔn)庫(kù) ? 輸入輸出緩沖 ? 基于控制臺(tái)的 I/O ? 基于文件的 I/O ? 基于字符串的 I/O 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 3 流的概念及用途 ? I/O操作是以對(duì)數(shù)據(jù)類型敏感的方式執(zhí)行的。 C++的 I/O操作是以字節(jié)流的形式實(shí)現(xiàn)的。流實(shí)際上就是字節(jié)序列。 ? C++提供了低級(jí)和高級(jí) I/O功能。低級(jí) I/O功能通常只在設(shè)備和內(nèi)存之間傳輸一些字節(jié)。高級(jí) I/O功能把若干個(gè)字節(jié)組合成有意義的單位,如整數(shù)、浮點(diǎn)數(shù)、字符、字符串以及用戶自定義類型的數(shù)據(jù)。 ? C++提供了無格式 I/O和格式化 I/O兩種操作。無格式 I/O傳輸速度快,但使用起來較為麻煩。格式化 I/O按不同的類型對(duì)數(shù)據(jù)進(jìn)行處理,但需要增加額外的處理時(shí)間,不適于處理大容量的數(shù)據(jù)傳輸。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 4 流與標(biāo)準(zhǔn)庫(kù) 頭文件 類型 iostream istream從流中讀取 ostream寫到流中去 iostream對(duì)流進(jìn)行讀寫,從 istream和 ostream派生 fstream ifstream從文件中讀取,由 istream派生而來 ofstream寫到文件中去,由 ostream派生而來 fstream對(duì)流進(jìn)行讀寫,由 iostream派生而來 sstream istringstream從 string對(duì)象中讀取,由 istream派生而來 ostringstream寫到 string對(duì)象中去,由 ostream派生而來 stringstream對(duì) string對(duì)象進(jìn)行讀寫,由 iostream派生而來 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 5 類的繼承關(guān)系 ios istream ostream ifstream ofstream iostream fstream istringstream ostringstream stringstream 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 6 輸入輸出與文件 ? 流與標(biāo)準(zhǔn)庫(kù) ? 輸入輸出緩沖 ? 基于控制臺(tái)的 I/O ? 基于文件的 I/O ? 基于字符串的 I/O 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 7 輸入輸出緩沖 ? C++的輸入輸出是基于緩沖實(shí)現(xiàn)的 ? 每個(gè) I/O對(duì)象管理一個(gè)緩沖區(qū),用于存儲(chǔ)程序讀寫的數(shù)據(jù) ? 當(dāng)用戶在鍵盤上輸入數(shù)據(jù)時(shí),鍵盤輸入的數(shù)據(jù)是存儲(chǔ)在輸入緩沖區(qū)中,當(dāng)執(zhí)行“ ”操作時(shí),從輸入緩沖區(qū)中取數(shù)據(jù)存入變量,如緩沖區(qū)中無數(shù)據(jù),則等待從外圍設(shè)備取數(shù)據(jù)放入緩沖區(qū) ? “ ”是將數(shù)據(jù)放入輸出緩沖區(qū)。如有下列語(yǔ)句: os “please enter the value:”。 系統(tǒng)將字符串常量存儲(chǔ)在與流 os關(guān)聯(lián)的緩沖區(qū)中 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 8 輸出緩沖區(qū)的刷新 ? 程序正常結(jié)束。作為 main函數(shù)返回工作的一部分,將真正輸出緩沖區(qū)的內(nèi)容,清空所有的輸出緩沖區(qū); ? 當(dāng)緩沖區(qū)已滿時(shí),在寫入下一個(gè)值之前,會(huì)刷新緩沖區(qū); ? 用標(biāo)準(zhǔn)庫(kù)的操縱符,如行結(jié)束符 endl,顯式地刷新緩沖區(qū); ? 在每次輸出操作執(zhí)行結(jié)束后,用 unitbuf操縱符設(shè)置流的內(nèi)部狀態(tài),從而清空緩沖區(qū); ? 可將輸出流與輸入流關(guān)聯(lián)起來。在這種情況下,在讀輸入流時(shí),將刷新其關(guān)聯(lián)的輸出緩沖區(qū)。在標(biāo)準(zhǔn)庫(kù)中,將 cout和cin關(guān)聯(lián)在一起,因此每個(gè)輸入操作都將刷新 cout關(guān)聯(lián)的緩沖區(qū)。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 9 輸入輸出與文件 ? 流與標(biāo)準(zhǔn)庫(kù) ? 輸入輸出緩沖 ? 基于控制臺(tái)的 I/O ? 基于文件的 I/O ? 基于字符串的 I/O 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 10 基于控制臺(tái)的 I/O ? 標(biāo)準(zhǔn)的輸入輸出流對(duì)象 ? cin是類 istream的對(duì)象,它與標(biāo)準(zhǔn)輸入設(shè)備 (通常指鍵盤 )連在一起。 ? cout是類 ostream的對(duì)象,它與標(biāo)準(zhǔn)輸出設(shè)備 (通常指顯示設(shè)備 )連在一起。 ? cerr是類 osteam的對(duì)象,它與標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備連在一起。 ? clog是類 ostream的對(duì)象,它與標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備連在一起。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 11 基于控制臺(tái)的 I/O 輸出流 輸入流 格式化輸入 /輸出 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 12 輸出流 ? C++的類 ostream提供了格式化輸出和無格式輸出的功能 ? 輸出功能包括 ?用流插入運(yùn)算符輸出標(biāo)準(zhǔn)類型的數(shù)據(jù); ?用成員函數(shù) put輸出字符; ?成員函數(shù) write的無格式化輸出; ?輸出特定形式數(shù)值 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 13 輸出標(biāo)準(zhǔn)類型的數(shù)據(jù) ? 標(biāo)準(zhǔn)類型的數(shù)據(jù)用流插入運(yùn)算符 輸出 ? 格式 : cout 數(shù)據(jù)項(xiàng) ; ? C++能自動(dòng)判別數(shù)據(jù)類型,并根據(jù)數(shù)據(jù)類型解釋內(nèi)存單元的信息,把它轉(zhuǎn)換成字符顯示在顯示器上。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 14 輸出流 include iostream using namespace std。 int main() {int a = 5, *p = amp。a。 double x = 。 char ch = 39。a39。 cout a = a endl。 cout x = x endl。 cout ch = ch endl。 cout *p = *p endl。 cout p = p endl。 return 0。 } a = 5 x = ch = a *p = 5 p = 0012FF7C 地址用十六進(jìn)制輸出 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 15 指針輸出的特例 ? 如果輸出的指針變量是一個(gè)指向字符的指針時(shí), C++并不輸出該指針中保存的地址,而是輸出該指針指向的字符串。 ? 如果確實(shí)想輸出這個(gè)指向字符的指針變量中保存的地址值,可以用強(qiáng)制類型轉(zhuǎn)換,將它轉(zhuǎn)換成 void*類型 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 16 include iostream using namespace std。 int main() {char *ptr = abcdef。 cout ptr指向的內(nèi)容為: ptr endl。 cout ptr中保存的地址為: (void*)ptr endl。 return 0。 } ptr指向的內(nèi)容為 : abcdef ptr中保存的地址為 : 0046C04C 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 17 用成員函數(shù) put輸出字符 (‘A’); 將字符 A顯示在屏幕上,并返回當(dāng)前對(duì)象。 連續(xù)調(diào)用 put函數(shù): (‘A’).put(‘\n’); 該語(yǔ)句在輸出字符 A后輸出一個(gè)換行符。圓點(diǎn)運(yùn)算符 (.)從左向右結(jié)合。 (65)。用 ASCII碼值表達(dá)式調(diào)用 put函數(shù),語(yǔ)句也輸出字符 A。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 18 write的無格式輸出 ? 調(diào)用成員函數(shù) write可實(shí)現(xiàn)無格式輸出。它有兩個(gè)參數(shù)。第一個(gè)參數(shù)是一個(gè)指向字符的指針,第二個(gè)參數(shù)是一個(gè)整型值。這個(gè)函數(shù)把一定量的字節(jié)從字符數(shù)組中輸出。這些字節(jié)都是未經(jīng)任何格式化的,僅僅是以原始數(shù)據(jù)形式輸出。 例如: char buffer[] =“HAPPY BIRTHDAY”; (buffer, 10 ); 輸出 buffer的 10個(gè)字節(jié) ? 函數(shù)調(diào)用: (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 10); 顯示了字母表中的前 10個(gè)字母。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 19 基于控制臺(tái)的 I/O 輸出流 輸入流 格式化輸入 /輸出 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 20 輸入流 ? 流讀取運(yùn)算符 ? Get函數(shù) ? Getline函數(shù) ? 其他函數(shù) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 21 流讀取運(yùn)算符 ? 輸入流最常用的操作是流讀取運(yùn)算符。 ? 流讀取運(yùn)算符通常會(huì)跳過輸入流中的空格、 tab鍵、換行符等空白字符。 ? 當(dāng)遇到輸入流中的文件結(jié)束符時(shí),流讀取運(yùn)算符返回0(false)。否則,流讀取運(yùn)算符返回對(duì)調(diào)用該運(yùn)算符的對(duì)象的引用。 ? 流讀取運(yùn)算符在讀入 EOF時(shí)返回 0的特性使得它經(jīng)常被用作為循環(huán)的判別條件,以避免選擇特定的表示輸入結(jié)束的值 ? EOF在各個(gè)系統(tǒng)中有不同的表示。在 windows中是 Ctri+z 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 22 實(shí)例 統(tǒng)計(jì)某次考試的最高成績(jī)。假定事先不知道有多少個(gè)考試成績(jī),在輸入結(jié)束時(shí)用戶會(huì)輸入表示成績(jī)輸入完畢的文件結(jié)束符。當(dāng)用戶輸入文件結(jié)束符時(shí), while循環(huán)結(jié)構(gòu)中的條件 (cingrade)將變?yōu)?0(即 false)。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 23 include iostream using namespace std。 int main()
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1