C++ fstream读写文件 文件指针

ifstream file;
.......
//中间有读写文件操作 
int i;

 i = file.tellg();
    file >> str1;
    file.seekg(i);
    file >> str2;

请问 这两个 str为什么不一样 我确认 在file>>str1和file>>str2这两个语句之前 seekg()
返回的值是一样的

你这个问题。。。你在读取的文件末尾多添加一行试试

错误的原因是,当file.eof() = 1 的时候,seekg函数会失效。。。比较好的结局方法就是seekg前判断是否在文件尾,然后好像是要重置吧

希望能帮到你

我帮你找了下,最好的方法是调用clear函数

代码稍微修改下

i = file.tellg();
file >> str1;

file.clear();   //添加clear函数
file.seekg(i);
file >> str2;