コードは次のとおりです。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string infile(argv[1]);
ifstream fin(infile.data());
string var_name;
char ch = fin.get();
cout << ch << endl;
ch = fin.get();
cout << ch << endl;
ch = fin.get();
cout << ch << endl;
cout << "pos: " << fin.tellg() << endl;
fin.seekg(-sizeof(char),ios::cur);
cout << "pos: " << fin.tellg() << endl;
ch = fin.get();
cout << ch << endl;
return 0;
}
ファイルの内容は単なる文字列です。
<
?
x
m
出力は次のとおりです。
<\n
?\n
x\n
pos: 3\n
pos: 2
x
印刷された最後の文字がまだ「x」であるのはなぜですか?seekg関数がファイルポインタを1バイト戻しないのはなぜですか?