当我输入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
这是为什么?