0

テキスト ファイルの他の内容をすべて消去せずに、std::ofstream を使用してテキスト ファイルの最初の 30 文字だけを書き換える方法はありますか? 私はウェブを見ましたが、それは役に立ちませんでした。ある人がファイル全体を書き直すことを提案しましたが、それは非常に非効率的です (他に +900*30 文字あります)。誰?ああ、これが私のコードです:

void Unlock(int Level)
{
    ifstream CheckIfExists("levels.txt");
    if (!CheckIfExists.good())
    {
        SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "ERROR",
                                 "Unable to open the levels file. Next level won't be unlocked!", window);
        CheckIfExists.close();
        return;
    }
    CheckIfExists.close();
    if(Level >= 0 && Level <= 29)
    {
        ofstream New_Locks("levels.txt");
        Locked[Level] = UNLOCKED;
        for(int i = 0; i < 30; ++i) New_Locks << Locked[i];
        New_Locks.close();
        return;
    }
    else SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, "Congratulations!",
                                  "You won! Thank you for playing! Maybe once more?", window);
    return;
}
4

1 に答える 1