seekg
tellg() ——返回一個int型數值,它表示“內置指標”的目前位置。此函數僅當你在讀取一個文件時有效。例如:
#include <fstream.h>
void main()
{
// 假如我們已經在test_file.txt中存有了“Hello”的內容
ifstream File("test_file.txt");
char arr[10];
File.read(arr,10);
// 由於Hello佔5個字元,因此這裏將返回5
cout << File.tellg() << endl;
File.close();
}
tellp() —— 與tellg()有同樣的功能,但它用於寫文件時。總而言之:當我們讀取一個文件,並要知道內置指標的目前位置時,應該使用tellg();當我們寫入一個文件,並要知道內置指標的目前位置時,應該使用tellp(). 由於此函數的用法與tellg()完全一樣,我就不給出示例代碼了。
seekp() —— 還記得seekg()麼?當我在讀取一個文件,並想到達文件中某個特定位置時,就曾使用過它。seekp()亦如此,只不過它用於寫入一個文件的時候。例如,假如我在進行文件讀寫,而要定位到目前位置的三個字元之前,則需呼叫Filehandle.seekg(-3). 但如果我是在寫入一個文件,並且比如我要重寫後5個字元的內容,我就必須往回跳轉5個字元,因而,我應該使用FileHandle.seekp(-5) .
ignore() —— 使用於讀取文件之時。如果你想略過一定數量的字元,只需使用此函數。實際上,你也可以使用seekg()來代替,然而使用ignore()有一個優點——你可以指定一個特定“界限規則(delimiter rule)”,同樣使得ignore()在指定的位置停下。函數原型如下:
istream& ignore( int nCount, delimiter );
nCount表示要略過的字元數量,而delimiter —— 與它的標簽有著同樣的含義:假如你想在文件末尾停下,則可使用EOF值傳入,這樣一來此函數就等同於seekg();但該參數還可以使用其他值,例如‘\n’這樣可以在換行的同時定位在新行處。下面是示例:
#include <fstream.h>
void main()
{
// 假設test_file.txt中已經存有"hello world"這一內容
ifstream File("test_file.txt");
static char arr[
相关阅读
seekg()/seekp()与tellg()/tellp()的用法详解
对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数