当我输入 is.seekg(0) 时,它会将我带到流的开头。但是,当我输入 is.seekg(ios::end) 时,它会将我带到第二个字符。为什么会这样。我认为我对此的误解源于对流如何工作的根本缺乏了解。我认为当您提供常量 ios::end 时,它会将您带到该流的末尾。但是,它似乎让你向前移动了一个角色。
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
这是为什么?