C++删除文件末尾字符

C++中使用fstream来进行文件读写,如果要覆盖文件末尾的部分字符,应该怎么操作呢?

1 #include <iostream>
2 #include <fstream>
3 std::ofstream aa("1212.txt",std::ios::in);
4 int main(){
5     aa.seekp(-5,std::ios::end);
6     aa<<":";
7     aa.close();
8 }

首先是ofstream的文件打开格式问题,

ios::app是在文件末追加写,会使seekp函数往回倒的时候失效

ios-ate是在文件打开时指针定位到文件结束,会清空文件中的内容

ios::in可以正常操作,不会清空其中的内容,但无法生成文件

然后关于seekp函数,第一个参数就是相对位置的偏移,第二个参数有

ios::beg:开头

os::cur:当前位置

ios::end:末尾

最后记得要close

原文地址:https://www.cnblogs.com/61355ing/p/10716407.html