提问人:Menelaus 提问时间:10/3/2020 最后编辑:πάντα ῥεῖMenelaus 更新时间:10/3/2020 访问量:271
所以。。。有没有办法阻止文件自动清除?(C++)
So...is there a way to stop files from clearing automatically? (c++)
问:
所以我正在制作一个非常简单的猜谜控制台游戏,我想将数据永久存储在一个文件中(highscore)。但是,每次我编译我使用的文件时都会清空自己。有什么办法可以阻止吗? 我尝试了很多没有用的东西,老实说我不知道问题出在哪里。我猜这与鳍和鳍有关,但对于其他人来说,它似乎有效
#include <iostream>
#include <fstream>
#include <time.h>
#include <conio.h>
int hs;
//this would be the play_game() function, unrelated to the subject
int main()
{
std::ofstream fout;
fout.open("HS.txt");
std::ifstream fin;
fin.open("HS.txt");
srand(time(NULL));
//menu with 4 options, play, quit, help and highscore (which i'm working on)
fin.close();
fout.close();
}
答:
0赞
einpoklum
10/3/2020
#1
不要将文件与两个流并行打开两次。此外,简单的打开写入不会截断您的文件,但会将您置于文件的开头,因此您将覆盖现有数据;看这个问题。您必须使用写入模式打开文件。
您需要:
- 打开文件进行输入和输出 - 并且不截断它;请参阅:
将输出文件同时作为输入和输出打开是什么意思? ,或 - 仅在应用启动时打开文件进行读取,并在应用存在时打开文件进行写入和写入(或每隔一段时间写入一次,以提高复原能力)。
评论
std::fstream::open()
、参数,具体来说。mode
std::ios::app
fout.open
fout.open ("HS.txt", std::ofstream::out | std::ofstream::app);
std::fstream
fout
fin
rdbuf()