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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM