必威体育Betway必威体育官网
当前位置:首页 > IT技术

文件流操作tellg(),seekg()

时间:2019-08-06 01:13:11来源:IT技术作者:seo实验室小编阅读:78次「手机版」
 

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()是对输入文件定位,它有两个参数:第一个参数

分享到:

栏目导航

推荐阅读

热门阅读