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

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

  文件和注冊(cè)表操作

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

  12.1char const * 和char * const

  1 char const * p;

  2 const char * p;

  3 char * const p;

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

  12.2C語(yǔ)言對(duì)文件操作的支持

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

  12.2.1文件的打開(kāi)

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

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

  其中的第一個(gè)參數(shù)是要打開(kāi)的文件名稱(chēng),第二個(gè)參數(shù)是打開(kāi)的模式。MSDN中對(duì)打開(kāi)文件的模式進(jìn)行了如下的定義。

  打開(kāi)一個(gè)文件的實(shí)例代碼如下:

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

  12.2.2文件的寫(xiě)入

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

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

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

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

  12.2.3文件指針的定位

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

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

  1 fseek(pFile,0,SEEK_SET);

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

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

  12.2.3文件的讀取

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

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

  寫(xiě)入文件時(shí)

  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 }

  相關(guān)推薦:

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

  2012年計(jì)算機(jī)等級(jí)考試二級(jí)VB重點(diǎn)知識(shí)匯總

  2012年下半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間及入口匯總

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