【问题标题】:Unable to write a data file,despite having no errors无法写入数据文件,尽管没有错误
【发布时间】:2019-08-29 10:30:37
【问题描述】:

对于我的学校项目,我正在创建一个游戏。对于保存游戏功能,我使用.DAT 二进制文件来读取和写入数据。当我输入必要的详细信息时,退出程序后文件中没有存储任何数据。

void save_game()
{
    savegame sg;

    fstream x("savegame.dat", ios::out|ios::binary);
    char pn[25];

    sg.points = point;

    sg.lives = count;

    clrscr();

    settextstyle(TRIPLEX_FONT, HORIZ_DIR, 3);

    outtextxy(50, 50, "ENTER YOUR NAME,PLAYA!");

    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";

    gets(pn);

    strcpy(sg.pname, pn);

    x.write((char*)&sg, sizeof(sg));

    quitgame();
}

当我打开.DAT 文件时,我希望其中存储了一些数据。但是,该文件仍然是空的。

【问题讨论】:

    标签: c++ borland-c++


    【解决方案1】:

    你没有提供compilable verifiable example,所以我只能用我的水晶球来帮助你。在水晶球中,我看到quitgame() 调用exit(),在这种情况下,您的x 的析构函数不会被调用,因此文件不会关闭也不会刷新到磁盘。因此它仍然是空的。

    另请参阅相关问题和其中的链接:Why is using exit() considered bad?

    【讨论】:

    • 那么,你得到了一个有用的水晶球。我的只是发出红色的火焰并发出嘶嘶声,“我看到你了。”
    猜你喜欢
    • 2013-06-23
    • 2015-03-26
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2012-05-31
    相关资源
    最近更新 更多