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