消失的内容 c++ 写入文件

Disappearing content c++ writing to file

提问人:EdwardTheTrain 提问时间:10/8/2023 更新时间:10/8/2023 访问量:85

问:

每当我在重新运行代码后将数据写入文件时,文件的内容都会消失

#include <iostream>
#include <fstream>

using namespace std;


int main(){
    string username = "";
    string path = "/Users/kishorejyothi/Desktop/C++/practice/list_usernames.txt";
    ofstream file(path);

    if(file.fail()){
        cerr << "Failed process";
        exit(1);
    }

    cout << "Enter a username: ";
    cin >> username;

    string full_username = username.append("@Abhinav.com");


    if(username.empty()){
        cout << "You didn't enter your username";
    }
    else{
        cout << "Thanks for entering your preferred username." << endl;
        cout << "Your username is now " << full_username;
    }
    file << username << endl;

    file.close();
}


我正在检查该文件以将用户名写入单独的代码行。

C++ fstream ofstream

评论

0赞 273K 10/8/2023
你输入什么,你期望什么文件内容,有什么实际内容 - 请在问题中显示所有这些信息,否则不清楚。
0赞 Some programmer dude 10/8/2023
每当您打开该文件时,其所有当前内容都将丢失。这是因为您不会以读写或追加模式打开 in。这就是指定文件流的工作方式。这就是所有文件 API 的真正工作方式:您需要告诉系统您要保留当前内容,否则它将丢失。
2赞 Some programmer dude 10/8/2023
如果你真的想学习 C++,那么请投资一些好的 C++ 书籍,它们会教你你需要知道的一切。

答:

4赞 Ahmed AEK 10/8/2023 #1

默认的打开模式会删除文件内容,如果希望文件保留其以前的内容,请在模式下打开文件。append

ofstream file(path, std::ios::app);