所以我正在为个人项目制作游戏。我从未读过和写入同一个文件,但我正在为自己尝试。目前,我第一次将PlayFile的第一行设置为true。然后我用false写它,然后计划用信息提交文件。程序运行,看到true,请求输入然后用false写入true,然后为输入的用户名添加第二行。
当我在此之后检查文件时,它说: 假 玩家名称(无论输入是什么)
大!它正在发挥作用。
不,不,不是。一旦我第三次运行该程序,它会显示“欢迎回到玩家名称(无论输入是什么)!”
然后它会清除文件中的所有行。
任何输入都会有所帮助。
void on_Launch()
{
//Sets the title of the console screen
SetConsoleTitle("Game Version: 1.0 --- No Grpahics");
//Opens PlayerFile to check for new or returning player
std::ifstream readFromPlayerFile("PlayerFile.txt");
std::string getFileInput;
getline(readFromPlayerFile, getFileInput); //grabbing the first line of the file preloaded
std::ofstream writeToPlayerFile("PlayerFile.txt");
if (readFromPlayerFile.is_open()) //checking if the file is open
{
if (getFileInput == "true") //Creating the player profile after first check.
{
Player_File newPlayer;
readFromPlayerFile.close();
if (writeToPlayerFile.is_open())
{
writeToPlayerFile << "false\n";
writeToPlayerFile << newPlayer.getPlayerName() + "\n";
}
}
//else error code maybe?
if (getFileInput == "false")
{
getline(readFromPlayerFile, getFileInput);
Player_File returningPlayer(getFileInput);
std::cout << "Welcome back " << returningPlayer.getPlayerName() << "!" << std::endl;
readFromPlayerFile.close();
}
}
else
std::cout << code101 << std::endl; //checking if the file failed to open
//readFromPlayerFile.close();
//writeToPlayerFile.close();
}
答案 0 :(得分:0)
std::ofstream ofs;
ofs.open("test.txt", std::ofstream::out | std::ofstream::trunc);
ofs.close();
只需使用truncate-option打开要写入的文件,即可删除内容。