簡體   English   中英

С++ 讀/寫文件

[英]С++ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM