[英]С++ read/write file
使用 C++、gcc.9x、Linux。 我嘗試打開並讀取文件,然后將其保持打開以進行進一步操作 - 為每次迭代重寫它。 但是每次,在我open
這個文件之后 - 它都會被清除。 是否可以保留文件內容直到我重寫它? 而且我想一直打開文件以進行寫作。
constructor()
{
{
ifstream tmp("file.db");
int date;
tmp >> date;
}
// it gets wiped out here, but I don't want it.
// And I want to keep ofstream opened all the time.
fileStreamMember_.open("file.db"); // std::ofstream
}
writeMethod()
{
fileStreamMember_.seekp(0, ios::beg);
fileStreamMember_<< date_ << endl;
}
1-st:文件對象有 state。 State 在每次操作后更新。 您可以使用如下代碼:
if (!fileStreamMember_) {
// There is an error after operation
}
您可以/應該在操作期間檢查文件 object 的 state。
2-nd:您應該關閉文件 object(或銷毀它)以寫入所有更改。
std::ofstream
open()
function (和構造函數)具有默認標志trunc
。 您應該明確指定 flags/mode 參數或使用std::fstream
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.