title.png

^<< 2006.11/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>$

Trackback の仕組みはありませんので、コメントにでも残していただくと嬉しいかも、です。

(2006.11.04)

ハマり:seekg と clear

std::fstream::seekg() は、eof 状態をリセットしない、すなわちファイルの最後まで読んでから「戻って読み直す」処理で、単純に seekg() しなおすだけではダメだったです。

std::ifstream ifs("foo.ext");

  ... // ifs が eof になるような処理

ifs.clear(); // ←これがないと、次の seekg() が意図通り動作しない
ifs.seekg(filesize/2, std::ios_base::beg);

こんな感じに clear() が必要。 20分のハマり。

ツッコミ