黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > C加加 > 復習資料 > 正文

計算機等考C++備考:C++標準庫IO操作詳解

  二進制文件(Binary files)

  在二進制文件中,使用<< 和>>,以及函數(如getline)來操作符輸入和輸出數據,沒有什么實際意義,雖然它們是符合語法的。

  文件流包括兩個為順序讀寫數據特殊設計的成員函數:write 和 read。第一個函數 (write) 是ostream 的一個成員函數,都是被ofstream所繼承。而read 是istream 的一個成員函數,被ifstream 所繼承。類 fstream 的對象同時擁有這兩個函數。它們的原型是:

  write ( char * buffer, streamsize size );

  read ( char * buffer, streamsize size );

  這里 buffer 是一塊內存的地址,用來存儲或讀出數據。參數size 是一個整數值,表示要從緩存(buffer)中讀出或寫入的字符數。

  // reading binary file

  #include

  #include

  const char * filename = “example.txt”;

  int main () {

  char * buffer;

  long size;

  ifstream file (filename, ios::in|ios::binary|ios::ate);

  size = file.tellg();

  file.seekg (0, ios::beg);

  buffer = new char [size];

  file.read (buffer, size);

  file.close();

  cout << “the complete file is in a buffer”;

  delete[] buffer;

  return 0;

  }

  緩存和同步(Buffers and Synchronization)

  當我們對文件流進行操作的時候,它們與一個streambuf 類型的緩存(buffer)聯系在一起。這個緩存(buffer)實際是一塊內存空間,作為流(stream)和物理文件的媒介。例如,對于一個輸出流,每次成員函數put (寫一個單個字符)被調用,這個字符不是直接被寫入該輸出流所對應的物理文件中的,而是首先被插入到該流的緩存(buffer)中。

  當緩存被排放出來(flush)時,它里面的所有數據或者被寫入物理媒質中(如果是一個輸出流的話),或者簡單的被抹掉(如果是一個輸入流的話)。這個過程稱為同步(synchronization),它會在以下任一情況下發生:

  當文件被關閉時: 在文件被關閉之前,所有還沒有被完全寫出或讀取的緩存都將被同步。

  當緩存buffer 滿時:緩存Buffers 有一定的空間限制。當緩存滿時,它會被自動同步。

  控制符明確指明:當遇到流中某些特定的控制符時,同步會發生。這些控制符包括:flush 和endl。

  明確調用函數sync(): 調用成員函數sync() (無參數)可以引發立即同步。這個函數返回一個int 值,等于-1 表示流沒有聯系的緩存或操作失敗。

  在C++中,有一個stream這個類,所有的I/O都以這個“流”類為基礎的,包括我們要認識的文件I/O,stream這個類有兩個重要的運算符:

  1、插入器(<<)

  向流輸出數據。比如說系統有一個默認的標準輸出流(cout),一般情況下就是指的顯示器,所以,cout<<“Write Stdout”<<'n';就表示把字符串“Write Stdout”和換行字符('n')輸出到標準輸出流。

  2、析取器(>>)

  從流中輸入數據。比如說系統有一個默認的標準輸入流(cin),一般情況下就是指的鍵盤,所以,cin>>x;就表示從標準輸入流中讀取一個指定類型(即變量x的類型)的數據。

  在C++中,對文件的操作是通過stream的子類fstream(file stream)來實現的,所以,要用這種方式操作文件,就必須加入頭文件fstream.h。下面就把此類的文件操作過程一一道來。

上一頁  1 2 3 4 5 6 7 下一頁
  相關推薦:等考C++備考之如何學習C++與面向對象:組合
       等考C++備考之如何學習C++與面向對象:重載
       C++備考之如何學習C++與面向對象:構造函數與&
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 免费看欧美一级特黄a大片一 | 天天看片夜夜爽 | 午夜剧场普通用户 | 久久黄色一级片 | 亚洲一区二区三区四 | 国产精品免费大片一区二区 | 一级毛片特级毛片国产 | 在线亚洲黄色 | 成人久久久精品乱码一区二区三区 | 超高清欧美videos360 | 天天操天天爱天天干 | 中文字幕日本不卡一二三区 | 一区二区三区在线播放 | 久久在现| 国产日韩精品欧美一区视频 | 亚洲永久视频 | 国产成人无精品久久久 | 久久久久国产一级毛片高清版 | 国产一级片毛片 | 天天天天天天天操 | 伊人手机在线视频 | 国产精品久久久久久久久久直 | 国产日韩欧美综合在线 | 欧美大片xxxxbbbb | 免费h视频 | www亚洲色图 | 黄网站视频观看免费 | 久操网视频 | 国产精品久久婷婷六月丁香 | 国产精品1 | 最新日本中文字幕 | 2017天天爽夜夜爽精品视频 | 日本一二区视频 | 精品免费视在线观看 | 黄色在线视频网 | 国产福利小视频 | 免费看一级黄色毛片 | 国产午夜精品片一区二区三区 | 久在线视频 | 中文字幕国产视频 | 欧美13一18成年性 |