C++ seekg函數(shù)用法案例詳解_第1頁
C++ seekg函數(shù)用法案例詳解_第2頁
C++ seekg函數(shù)用法案例詳解_第3頁
C++ seekg函數(shù)用法案例詳解_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第C++seekg函數(shù)用法案例詳解C++seekg函數(shù)用法詳解

很多時候用戶可能會這樣操作,打開一個文件,處理其中的所有數(shù)據(jù),然后將文件倒回到開頭,再次對它進行處理,但是這可能有點不同。例如,用戶可能會要求程序在數(shù)據(jù)庫中搜索某種類型的所有記錄,當(dāng)這些記錄被找到時,用戶又可能希望在數(shù)據(jù)庫中搜索其他類型的所有記錄。

文件流類提供了許多不同的成員函數(shù),可以用來在文件中移動。其中的一個方法如下:

seekg(offset,place);

這個輸入流類的成員函數(shù)的名字seekg由兩部分組成。首先是seek(尋找)到文件中的某個地方,其次是"g"表示"get",指示函數(shù)在輸入流上工作,因為要從輸入流獲取數(shù)據(jù)。

要查找的文件中的新位置由兩個形參給出:新位置將從由place給出的起始位置開始,偏移offset個字節(jié)。offset形參是一個long類型的整數(shù),而place可以是ios類中定義的3個值之一。起始位置可能是文件的開頭、文件的當(dāng)前位置或文件的末尾,這些地方分別由常量ios::beg、ios::cur和ios::end表示。

有關(guān)在文件中移動的更多信息將在后面的章節(jié)中給出,目前先來關(guān)注如何移動到文件的開頭。要移到文件的開始位置,可以使用以下語句:

seekg(0L,ios::beg);

以上語句表示從文件的開頭位置開始,移動0字節(jié),實際上就是指移動到文件開頭。

注意,如果目前已經(jīng)在文件末尾,則在調(diào)用此函數(shù)之前,必須清除文件末尾的標(biāo)志。因此,為了移動到剛讀取到末尾的文件流dataln的開頭,需要使用以下兩個語句:

dataIn.clear();

dataIn.seekg(0L,ios::beg);

下面的程序演示了如何倒回文件的開始位置。它首先創(chuàng)建一個文件,寫入一些文本,并關(guān)閉文件;然后打開文件進行輸入,一次讀取到最后,倒回文件開頭,然后再次讀?。?/p>

//Programshowshowtorewindafile.Itwritesatextfileandopensitforreading,thenrewinds

//ittothebeginningandreadsitagain.

#includeiostream

#includefstream

usingnamespacestd;

intmain()

//Variablesneededtoreadorwritefileonecharacteratatimecharch;

fstreamioFile("rewind.txt",ios::out);

//Openfile.

if(!ioFile)

cout"Errorintryingtocreatefile";

return0;

//Writetofileandclose

ioFile"Allgooddogs"endl"growl,bark,andeat."endl;

ioFile.close();

//Openthefile

ioFile.open("rewind.txt",ios::in);

if(!ioFile)

cout"Errorintryingtoopenfile";

return0;

//Readthefileandechotoscreen

ioFile.get(ch);

while(!ioFile.fail())

cout.put(ch);

ioFile.get(ch);

//Rewindthefile

ioFile.clear();

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

//Readfileagainandechotoscreen

ioFile.get(ch);

while(!ioFile.fail())

cout.put(ch);

ioFile.get(ch);

return0;

}

程序輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論