这是代码:
#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 函数不将文件指针向后移动一个字节?