0

いくつかのレコードを含むテキストファイルがあります。各レコードは、100文字の長さの1行に格納されます。

n番目のレコードに直接アクセスしたいとします。forループを使用して、レコードに到達するまでn行を読み取ることができます。

しかし、どうすれば直接アクセスできますか?

4

2 に答える 2

4

各行の長さが正確に100文字で、行末が常に\n(つまり、何も含まれていない\r\n)で、空白行がなく、8つのスペースなどに1つのタブを使用しない場合(ifstreamを使用)

fin.seekg(101 * n, ios::beg);  // Assume the initial record has n=0.

または(FILE *を使用)

fseek(f, 101 * n, SEEK_SET);

前提条件のいずれかがわからない場合は、ループを使用してください。

于 2010-03-25T09:11:45.710 に答える
0

seekg関数を使用できます。

ifstream is("test.txt");
is.seekg ( (n-1)*100, ios::beg); // move the get pointer to the beg of nth record.
于 2010-03-25T09:10:30.517 に答える