當我輸入is.seekg(0)時,它將我帶到我的流的開頭。但是,當我輸入is.seekg(ios :: end)時,它將我帶到第二個字符。爲什麼會發生。我認爲我對此的誤解源於對流如何運作的根本缺乏理解。我會認爲,當你提供常量ios :: end時,它會把你帶到那個流的末尾。但是,它似乎讓你向前移動了一個角色。Istream seekg()偏移量和ios ::結束
cin.seekg(0, ios::end);
int length = cin.tellg();
cout << length << endl;
cin.seekg(0);
cout << cin.tellg();
當我輸入<文件包含 「123456789」
的輸出是10 0
現在,如果我這樣做:
cin.seekg(ios::end);
int length = cin.tellg();
cout << length << endl;
輸出是2
這是爲什麼?