C ++“永恒”变量

时间:2013-06-08 19:49:03

标签: c++

我需要一个包含C ++中最佳玩家得分的变量。所以我需要一些在程序结束后不会被删除的东西,每当有人获得更高的分数时,必须用新的变量替换变量。我知道我可以在.txt文件中保存该号码,但我想知道是否有另一种方式?

4 个答案:

答案 0 :(得分:6)

您可以使用OpenKeyval之类的内容。

设置高分将是一个POST请求:

$ curl http://api.openkeyval.org/highscore -d "data=1000"

获得高分是一个GET请求:

$ curl http://api.openkeyval.org/highscore
1000

答案 1 :(得分:1)

另一种方法是将其存储在SQLite数据库中。这样,您就可以获得数据库的灵活性,而无需运行或连接到服务器。

答案 2 :(得分:0)

我可以想到三个主要选项: 1.)将其存储在一个文件中 2.)将其存储在注册表中(http://forum.codecall.net/topic/63205-registry-operations-using-win32-part-1/) 3.)将其存储在可以读取或写入

的在线服务器上

答案 3 :(得分:0)

最通用和“便携”的方式是将其存储在文本文件中。当然,也可以滥用,有人可以在记事本中打开文件并将分数从1234改为999999或类似。

存储在二进制文件中会起作用,但对机器体系结构和变量大小很敏感。

Windows有一个“注册表”,可用于存储字符串或二进制数据,类似于文件。但是,如果你决定将你的游戏转移到Linux,那么显然是行不通的。

如果你想跟踪所有比赛的所有得分,数据库可能是比简单文件更好的解决方案。有“本地使用”的数据库,例如可以在自己的机器上运行的SQLite或MySql(MySql也可以在网络上运行,可以集中到同一网络上的一组机器上,并且用于大量基于Web的应用程序)。

您可以设置(或使用现有的)网站,并使用程序驱动的Web访问来存储和恢复值。或者你可以在FTP服务器上存储一个文件,这与web访问几乎相同,但是配置和设置更加“混乱”(并且可能更难以通过某些防火墙)。当然,如果你想拥有“世界范围”的最高分,每个玩家的个人统计数据等,那么基于网络的解决方案可能是正确的方法 - 但是还需要一些安全措施来防止某人从假装得分。

所有选择都有其优点和缺点。哪个是您的最佳选择,这取决于您的最终目标是什么。如果仅仅是“让我自己和我的朋友在家里玩一个俄罗斯方块游戏”的情况,那么将分数保存在文本文件中可能不是什么大问题。如果您正在寻找下一代魔兽世界或其他类似的东西,那么基于网络几乎肯定是唯一的解决方案。