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

2012年計算機等考二級C++備考筆記(八)

來源:考試吧Exam8.com) 2012-7-21 10:02:47 考試吧:中國教育培訓第一門戶 模擬考場

  文件和注冊表操作

  很多與文件操作相關的函數(shù)其參數(shù)類型都是const char*,本章首先介紹指向常量的指針const char*和指針常量char *const這兩種類型的區(qū)別。

  12.1char const * 和char * const

  1 char const * p;

  2 const char * p;

  3 char * const p;

  這三個有什么不同?const char * p;和char const * p;在實現(xiàn)上都是一樣的,定義一個指向常量的指針,由于指針指向的是一個常量,常量的值不能改變,但是可以改變指針的指向。char * const p;這是一個指針常量,也就是指針的指向不能改變,但是可以改變指針指向的值。區(qū)別指針常量和常量指針的關鍵看const 和* 的位置。

  12.2C語言對文件操作的支持

  C語言中,對文件的操作是利用FILE結(jié)構(gòu)體實現(xiàn)的。

  12.2.1文件的打開

  MSDN中有一個fopen函數(shù)

  1 FILE *fopen( const char *filename, const char *mode );

  其中的第一個參數(shù)是要打開的文件名稱,第二個參數(shù)是打開的模式。MSDN中對打開文件的模式進行了如下的定義。

  打開一個文件的實例代碼如下:

  FILE *pFile=fopen("1.txt","w");//該操作返回一個FILE類型的指針

  12.2.2文件的寫入

  1 size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

  文件寫入有四個參數(shù),分別表示:要寫入的數(shù)據(jù),以字節(jié)為單位的項的大小,寫入項的最大數(shù)目,指向FILE類型的指針,該參數(shù)可以由fopen函數(shù)獲取到,也就是fopen函數(shù)的返回值。寫入文件的實例代碼如下:

  1 fwrite("new buffer",1,strlen("new buffer"),pFile);

  由于C語言對文件操作采用緩存文件系統(tǒng),從內(nèi)存從磁盤寫入的文件首先會被放到內(nèi)存緩沖區(qū)中,只有當內(nèi)存緩沖區(qū)滿了或者當寫入操作的文件關閉之 后,才把要寫入的數(shù)據(jù)存的磁盤文件上。如果要在執(zhí)行寫操作之后立即將數(shù)據(jù)存放到磁盤文件上,可以先調(diào)用fflush函數(shù)刷新緩沖區(qū)或者調(diào)用fclose函數(shù)將打開的文件關閉。

  12.2.3文件指針的定位

  1 int fseek( FILE *stream, long offset, int origin );

  該函數(shù)的第三個參數(shù)有三種默認的值,SEEK_CUR,SEEK_END,SEEK_SET,實際上是三個宏定義值,在STDIO.h文件中可以看到它們的值分別是1,2,0。分別表示定位到文件的當前位置,結(jié)束位置和開始位置。

  1 fseek(pFile,0,SEEK_SET);

  2 fwrite("haha",1,strlen("haha"),pFile);

  將指針定位到已經(jīng)打開的文件的其實位置,并寫入新的數(shù)據(jù)。完成此操作時候會發(fā)現(xiàn)文件中起始位置的四個字符已經(jīng)被替換掉了。嘗試了下改變文件的打開模式,但是都不能實現(xiàn)a+b的效果。

  12.2.3文件的讀取

  1 size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

  由于C語言中字符串是以""0"符號結(jié)束的。在顯示字符串的時候,系統(tǒng)會尋找""0"字符,因此在寫入數(shù)據(jù)的時候需要在結(jié)尾添加一個""0",在讀取數(shù)據(jù)的時候,可以動態(tài)創(chuàng)建一個數(shù)據(jù)長度+1的字符數(shù)組,然后將最后一個元素設置為""0"。

  寫入文件時

  01 void CFileView::OnFileRead()

  02 {

  03 // TODO: Add your command handler code here

  04 FILE *pFile=fopen("1.txt","w");

  05 //fwrite("new buffer",1,strlen("new buffer"),pFile);

  06 char buf[22]="www.colsir.com";

  07 buf[21]='"0';

  08 fwrite(buf,1,22,pFile);

  09 fclose(pFile);

  10 }

1 2 3 4 下一頁

  相關推薦:

  2012年計算機等考四級數(shù)據(jù)庫工程師備考筆記匯總

  2012年計算機等級考試二級VB重點知識匯總

  2012年下半年計算機等級考試報名時間及入口匯總

文章責編:renyinan  
看了本文的網(wǎng)友還看了
文章搜索
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。