小编ste*_*315的帖子

C++ 在文件中的特定点插入一行

我有一个文本文件,其中包含以下格式的游戏高分:

Name Score
Name Score
Name Score
Run Code Online (Sandbox Code Playgroud)

文件按分数降序排列。

我想在文件中的正确位置插入一个新名称及其相应的分数,以便它保持正确的顺序。任何如何做到这一点的建议将不胜感激!

例如,给定以下文件:

Edward 100
David 90
Sarah 80
Alice 60
Run Code Online (Sandbox Code Playgroud)

我想补充一下。

Name = Jodi
Score = 70
Run Code Online (Sandbox Code Playgroud)

到文件,所以新文件读取:

Edward 100
David 90
Sarah 80
Jodi 70
Alice 60
Run Code Online (Sandbox Code Playgroud)

谢谢

目前我有以下代码:

string playerName = pPlayer->GetName();
int playerScore = pPlayer->GetScore();

std::ofstream score("scores.txt", std::ios_base::app | std::ios_base::out);

score << "\n" << playerName << " " << playerScore;
Run Code Online (Sandbox Code Playgroud)

这只是将名称添加到文件末尾。我考虑阅读整个文件并对其进行排序,然后对旧文件进行纠正。但我不想这样做,因为如果文件变大,可能需要很长时间。

c++ string file-io

6
推荐指数
1
解决办法
2万
查看次数

实例声明Haskell

我的代码是这样的:

type Code = [Inst]

data Inst = PUSH Int
          | PUSHV Name
          | POP Name
          | DO Op
          | JUMP Label
          | JUMPZ Label
          | LABEL Label
          deriving Show

doJump :: Inst -> Code -> Code
doJump l c = case (elemIndex l c) of
                 Just n -> drop (n+1) c
                 Nothing -> c
Run Code Online (Sandbox Code Playgroud)

并且GHC给我发回了这个错误,这让我完全陷入困境......我想要做的是从特定元素发生后的点返回列表.

No instance for (Eq Inst) arising from a use of `elemIndex'
Possible fix: add an instance declaration for (Eq Inst)
In the expression: (elemIndex …
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
1
解决办法
99
查看次数

标签 统计

c++ ×1

file-io ×1

haskell ×1

string ×1