用C++读取和重写同一文件

用C++读取和重写同一文件,c++,fstream,C++,Fstream,我必须从一个文件中读取数据,根据从该文件中获取的数据执行一些操作,然后用操作完成后获得的新值重写整个文件。我试过了 fstream file("date.in", ios::in|ios::out) 但它似乎将新的数据集放在了文件的末尾。也试过 fstream file("date.in", ios::in|ios::out|ios::trunc) 但是,我甚至无法读取第一组数据,因为它似乎不在那里。如果要读取和写入文件中相同的偏移量,可以使用seekp和seekg设置put和get指针

我必须从一个文件中读取数据,根据从该文件中获取的数据执行一些操作,然后用操作完成后获得的新值重写整个文件。我试过了

fstream file("date.in", ios::in|ios::out) 
但它似乎将新的数据集放在了文件的末尾。也试过

fstream file("date.in", ios::in|ios::out|ios::trunc) 

但是,我甚至无法读取第一组数据,因为它似乎不在那里。

如果要读取和写入文件中相同的偏移量,可以使用seekp和seekg设置put和get指针。他们的文档可以在上找到。

更简单的解决方案是打开文件进行读取、读取、关闭,然后再次打开文件进行写入和写入。类似于ifstream filedate.in。。。file.close;ofstream filedate.in?对或者在不同的范围内使用它们,例如在单独的函数内,这样您就不需要手动关闭任何东西。看起来它工作正常,谢谢!