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

正文內(nèi)容

第14章輸入輸出與文件-資料下載頁(yè)

2024-09-28 16:35本頁(yè)面

【導(dǎo)讀】輸入輸出是指程序與外部設(shè)備交換信息。在C++中,輸入輸出不是語(yǔ)言所定義的部分,而是由標(biāo)準(zhǔn)庫(kù)提供。I/O操作是以對(duì)數(shù)據(jù)類(lèi)型敏感的方式執(zhí)行的。作是以字節(jié)流的形式實(shí)現(xiàn)的。流實(shí)際上就是字節(jié)序列。低級(jí)I/O功能通常只在設(shè)。高級(jí)I/O功能把若干個(gè)字節(jié)組。C++提供了無(wú)格式I/O和格式化I/O兩種操作。輸速度快,但使用起來(lái)較為麻煩。理大容量的數(shù)據(jù)傳輸。每個(gè)I/O對(duì)象管理一個(gè)緩沖區(qū),用于存儲(chǔ)程序讀寫(xiě)的數(shù)據(jù)。作為main函數(shù)返回工作的一部分,將真正。當(dāng)緩沖區(qū)已滿(mǎn)時(shí),在寫(xiě)入下一個(gè)值之前,會(huì)刷新緩沖區(qū);用標(biāo)準(zhǔn)庫(kù)的操縱符,如行結(jié)束符endl,顯式地刷新緩沖區(qū);部狀態(tài),從而清空緩沖區(qū);在這種情況下,在讀輸入。在標(biāo)準(zhǔn)庫(kù)中,將cout和。鍵盤(pán))連在一起。cerr是類(lèi)osteam的對(duì)象,它與標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備連。用成員函數(shù)put輸出字符;字符顯示在顯示器上。地址,而是輸出該指針指向的字符串。cout<<"ptr指向的內(nèi)容為:"<<ptr<<endl;

  

【正文】 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 83 文件設(shè)計(jì) ? 設(shè)計(jì)一個(gè)文件 book,該文件中的每個(gè)記錄保存一本書(shū)的信息。 ? 文件中的記錄可按館藏號(hào)的次序存放,這樣可方便實(shí)現(xiàn)添加書(shū)和借還書(shū)的功能。添加書(shū)時(shí),只要將這本書(shū)對(duì)應(yīng)的記錄添加到文件尾。借還書(shū)時(shí),可以根據(jù)館藏號(hào)計(jì)算記錄的存儲(chǔ)位置,修改相應(yīng)的記錄。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 84 book類(lèi)設(shè)計(jì) ? 數(shù)據(jù)成員: ? 館藏號(hào)、書(shū)名、借書(shū)標(biāo)記 ? 為了提供館藏號(hào)自動(dòng)生成,需要保存系統(tǒng)中最大的館藏號(hào)。這個(gè)值可以作為書(shū)目類(lèi)的靜態(tài)成員。 ? 成員函數(shù): ? 構(gòu)造函數(shù) ? 借書(shū) ? 還書(shū) ? 顯示書(shū)的詳細(xì)信息 ? 靜態(tài)成員初始化 ? 靜態(tài)成 員值加 1 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 85 ifndef _book_h define _book_h include cstring include iostream include iomanip include fstream using namespace std。 class book { int no。 char name[20]。 int borrowed。 static int no_total。 public: 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 86 book(const char *s = ) {no = no_total。 borrowed = 0。 strcpy(name,s)。} void borrow(int readerNo) //借書(shū) { if (borrowed != 0) cerr 本書(shū)已被借,不能重復(fù)借 \n。 else borrowed = readerNo。 } void Return() { //還書(shū) if (borrowed == 0) cerr 本書(shū)沒(méi)有被借,不能還 \n。 else borrowed = 0。 } void display() //顯示書(shū)的信息 { cout setw(10) no setw(20) name setw(10) borrowed endl。} static void resetTotal() {no_total = 0。} //最大館藏號(hào)復(fù)位 static void addTotal() {++no_total。} //館藏號(hào)加 1 }。 int book::no_total = 0。 //靜態(tài)數(shù)據(jù)成員的定義 endif 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 87 系統(tǒng)分解 ? 系統(tǒng)可分解成五大功能,每個(gè)功能用一個(gè)函數(shù)實(shí)現(xiàn)。 ? Main函數(shù)顯示菜單,根據(jù)用戶(hù)的選擇調(diào)用相應(yīng)的函數(shù) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 88 Main函數(shù) include void initialize()。 //系統(tǒng)初始化 void addBook()。 //添加新書(shū) void borrowBook()。 //借書(shū) void returnBook()。 //還書(shū) void displayBook()。 //顯示所有的書(shū)目信息 int main() {int selector。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 89 while (true) { cout 0 退出 \n。 cout 1 初始化文件 \n。 cout 2 添加書(shū) \n。 cout 3 借書(shū) \n。 cout 4 還書(shū) \n。 cout 5 顯示所有書(shū)目信息 \n。 cout 請(qǐng)選擇( 05): 。 cin selector。 if (selector == 0) break。 switch (selector) {case 1: initialize()。 break。 case 2: addBook()。 break。 case 3: borrowBook()。 break。 case 4: returnBook()。 break。 case 5: displayBook()。 break。 } } return 0。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 90 Initialize的實(shí)現(xiàn) void initialize() { ofstream outfile(book)。 book::resetTotal()。 ()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 91 addBook的實(shí)現(xiàn) void addBook() { char ch[20]。 book *bp。 ofstream outfile(book,ofstream::app)。 book::addTotal()。 cout 請(qǐng)輸入書(shū)名: 。 cin ch。 bp = new book(ch)。 ( reinterpret_castconst char *(bp), sizeof(*bp))。 delete bp。 ()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 92 borrowBook void borrowBook() {int bookNo, readerNo。 fstream iofile(book)。 book bk。 cout 請(qǐng)輸入書(shū)號(hào)和讀者號(hào): 。 cin bookNo readerNo。 ((bookNo 1) * sizeof(book))。 ( reinterpret_castchar * (amp。bk), sizeof(book) )。 (readerNo)。 ((bookNo 1) * sizeof(book))。 ( reinterpret_castconst char *(amp。bk), sizeof(book))。 ()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 93 returnBook void returnBook() {int bookNo。 fstream iofile(book)。 book bk。 cout 請(qǐng)輸入書(shū)號(hào): 。 cin bookNo 。 ((bookNo 1) * sizeof(book))。 ( reinterpret_castchar * (amp。bk), sizeof(book) )。 ()。 ((bookNo 1) * sizeof(book))。 ( reinterpret_castconst char *(amp。bk), sizeof(book))。 ()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 94 displayBook void displayBook() {ifstream infile(book)。 book bk。 ( reinterpret_castchar * (amp。bk), sizeof(book) )。 while (!()) { ()。 ( reinterpret_castchar * (amp。bk), sizeof(book) )。 } ()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 95 輸入輸出與文件 ? 流與標(biāo)準(zhǔn)庫(kù) ? 輸入輸出緩沖 ? 基于控制臺(tái)的 I/O ? 基于文件的 I/O ? 基于字符串的 I/O 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 96 基于字符串的 I/O ? iostream標(biāo)準(zhǔn)庫(kù)支持內(nèi)存中的輸入輸出,只要將流與存儲(chǔ)在程序內(nèi)存中的 string對(duì)象捆綁起來(lái)即可 ? 標(biāo)準(zhǔn)庫(kù)定義了三種類(lèi)型的字符串流: ? istringstream:由 istream派生而來(lái),提供讀 string的功能。 ? ostringstream:由 ostream派生而來(lái),提供寫(xiě)string的功能。 ? stringstream:由 iostream派生而來(lái),提供讀寫(xiě)string的功能。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 97 字符串流使用實(shí)例 include iostream include sstream include string using namespace std。 int main() { string ch。 ostringstream os(ch)。 // 或 ostringstream os。 for (int i = 0。 i=20。 ++i) os i 39。 39。 cout ()。 cout endl。 istringstream is(())。 while (is i) cout i 39。\t39。 return 0。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 98 小結(jié) ? 輸入輸出是程序中不可缺少的一部分。在 C++中,輸入輸出功能是以標(biāo)準(zhǔn)庫(kù)的形式來(lái)提供。輸入輸出操作分為控制臺(tái) I/O,文件 I/O以及字符串 I/O。由于文件 I/O和字符串 I/O類(lèi)都是從控制臺(tái) I/O類(lèi)繼承的,因此,這三種 I/O的操作方式是相同的。 ? 本章介紹了如何利用 iostream庫(kù)進(jìn)行格式化的輸入輸出,介紹了如何利用文件永久保存信息,并以圖書(shū)館系統(tǒng)為例,介紹了實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1