我正在尝试编写一个使用 fstream 读取文件的程序,然后重写一些文本并删除文件的其余部分这是我想要做的代码
#include<iostream>
#include<fstream>
using namespace std;
int main(int argc, char **argv){
fstream *binf;
fstream someFile("t.txt", ios::binary|ios::out|ios::in);
int i;
for(i=0;i<3;i++){
char c;
someFile.seekg(i);
someFile.get(c);
cout<<"c:"<<c<<endl;
}
someFile.seekp(i++);
someFile.put("Y");
someFile.seekp(i++);
someFile.put("Y");
//Delete the rest of the file
return 0;
}
请注意以下用于打开文件的标志
ios::in Open for input operations.
ios::out Open for output operations.
ios::binary Open in binary mode.
ios::ate Set the initial position at the end of the file. If this flag is not set to any value, the initial position is the beginning of the file.
ios::app All output operations are performed at the end of the file, appending the content to the current content of the file. This flag can only be used in streams open for output-only operations.
ios::trunc If the file opened for output operations already existed before, its previous content is deleted and replaced by the new one.
我尝试了这些的许多组合,但没有一个可以帮助我做我想做的事情,我想阅读文件,直到找到文本。如果我找到我想要的文本,我会覆盖它并删除文件的其余部分。因此,应将文件重新调整为较小的文件。