is.seekg(0)と入力すると、ストリームの先頭に移動します。ただし、is.seekg(ios :: end)と入力すると、2番目の文字に移動します。なぜそれが起こるのですか。これについての私の誤解は、ストリームがどのように機能するかについての根本的な理解の欠如に根ざしていると思います。定数ios::endを提供すると、そのストリームの最後に移動すると思います。しかし、それはあなたを1文字前進させるように見えます。
cin.seekg(0, ios::end);
int length = cin.tellg();
cout << length << endl;
cin.seekg(0);
cout << cin.tellg();
<「123456789」を含むファイルを入力すると
出力は100です
今私がこれを行う場合:
cin.seekg(ios::end);
int length = cin.tellg();
cout << length << endl;
出力は2です
何故ですか?