0
A
回答
0
看這兩個功能:
ostream的& seekp(的streampos POS); ostream & seekp(streamoff off,ios_bas:seekdir dir);
0
也許這解決您的問題
ofstream out("foo.txt");
out << "foo";
out << "\r" << "bar";
這將留下一個文件,它只是酒吧。
第二個方法: 如果該文件只包含一個行,你可以用ofstream::trunc
打開它,如果你想完全重寫文件關閉它每次寫
3
後,丟棄它的內容則簡單地使用trunc
模式。但是,如果還有其他內容需要保存,那麼最簡單的方法是將文件讀入內存,更改第一行並將所有內容寫回。我認爲不可能直接改變第一行,除非你覆蓋了相同數量的字符。
0
如果文件不是很大,那麼除了自定義的第一行之外,您可以在每行上覆制一個新的文件。然後,替換原件。
void ReplaceFirstLine(string filename)
{
ifstream infile;
ofstream outfile;
infile.open(filename.c_str(), ios_base::in);
outfile.open("tempname.txt", ios_base::out);
bool first = true;
string s;
while (getline(infile, s, '\n'))
{
if (first)
outfile << "my new first line\n";
else
outfile << s << endl;
first = false;
}
infile.close();
outfile.close();
::CopyFileA("tempname.txt", filename.c_str(), FALSE); // or Linux equivalent
}
相關問題
- 1. C++ Ofstream一個新行
- 2. C++ uniform_int_distribution總是在第一次調用
- 3. C#和Excel:寫在多張紙上,它總是寫在第一張?
- 4. 消息總是出現在第一行?
- 5. 使用ofstream C++覆蓋一行
- 6. datatable.GetChanges()總是顯示DataGridView的第一行
- 7. 爲什麼ofstream :: rdbuf()總是空的?
- 8. C++ ofstream的換行符
- 9. C# - 隨機寫入文件 - 在第一行之前寫入第二行
- 10. C++ ofstream指針無法寫入磁盤
- 11. ofstream-將元素寫入文件 - C++
- 12. C++ ofstream不寫入輸出文件?
- 13. 寫uint16_t與ofstream的
- 14. ifstream - > ofstream C++
- 15. RadioButtonList SelectedItem總是第一個
- 16. C++向量ofstream,如何寫入一個特定元素
- 17. Ansible在第一次運行時總是失敗
- 18. C#AcroPDF總是在第一臺打印機上打印
- 19. StreamWriter的只寫第一行
- 20. C++使用ofstream的
- 21. 在XMLWriter格式化總是寫在同一行
- 22. Ofstream寫太多字節
- 23. 帶有xdebug的Eclipse Luna總是在第一行打破
- 24. Ajax在提交表單時總是需要第一行
- 25. jqGrid總是在使用addRowData時突出顯示第一行
- 26. flex/bison總是在第一行出現「語法錯誤」
- 27. 總是顯示在劍道網格中選擇的第一行
- 28. 爲什麼結果總是出現在第一行?
- 29. 總計行第一列重複值vba
- 30. 在C++ ofstream和vector中寫入空白文件
也許我錯了,但'seekp'-方法設置放置指針。 – gaussblurinc
你想替換第一行還是先插入新行? – dwalter
@dwalter我想用'seekp'-方法替換行 – eouti