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
