行を配置seekg()とtellg()ドキュメントの右の理由ではありません

文字列in_path = "/home/XX/a.prototxt"。

ストリーム=はifstream(in_path、スタンダード::イオス::バイナリ)。

std ::たstreampos POS = 0;

一方、(TRUE){

POS = stream.tellg()

std ::はistream&RET = stream.getline(ライン、はsizeof(ライン));

stream.seekg(POS)

}

 

上記のコードは、原稿の読取位置は、行POSのために繰り返すことができます

いくつかのケースでは、我々はあなたがPOSにファイルストリームの位置をseekgと、この特定の場所を取得tellg使用することができ、特定の場所にあるドキュメントフローからデータを読み込む必要があります。

すなわち:

stream.tellg()は、どの位置で原稿を読み取る現在与えることができます

stream.seekg(POS)は、次の位置posを読んで起動するように設定することができます。

しかし、唯一のtellgを使用し、正確な位置決めが文書はバイナリ形式、すなわちのstd ::イオス::バイナリで開かれているということですseekgすることができます。(POS)をseekg時に署名された文書のすべての解釈は同じではありませんシステムは、それが原因となりますので、私たちが望む場所に移動することはできません。

 

おすすめ

転載: www.cnblogs.com/mengmengmiaomiao/p/11666667.html