在我的程序中,我保存了高分以及分钟和秒的时间 . 在我的代码中,我目前将其作为两个 int
存储在一个名为 highscore
的结构中 . 但是,当我显示输出时,这对于格式化来说有点乏味 . 我想将时间显示为 12:02
而不是 12:2
. 我有一个变量已经在我的游戏中被称为字符串时钟,它已经用冒号格式化,我想要做的就是在我的文本文件中添加它 .
如何重构我的代码以获得时间戳的单个变量,该变量将被正确格式化?我希望能够通过直接调用结构将我的数据写入文件 .
// Used for Highscores
struct highscore
{
char name[10];
int zombiesKilled;
// I would like these to be a single variable
int clockMin;
int clockSec;
char Date[10];
};
// I write the data like this:
highscore data;
// ...
data[playerScore].clockMin = clockData.minutes;
data[playerScore].clockSec = clockData.seconds;
streaming = fopen( "Highscores.dat", "wb" );
fwrite( data, sizeof(data), 1 , streaming);
// ...
2 回答
您似乎只想使用C的
fwrite()
函数将C字符串或std::string
写入文件 .这应该很容易,因为你的C字符串符合ASCII格式(没有Unicode有趣的业务):
我们也可以选择尝试使用C风格的文件I / O来实现更清晰的界面 .
此外,
<chrono>
中的数据类型可以证明在那些时候非常有用 .如果您希望能够这样做:
那么为std :: ostream创建一个运算符重载是有意义的 .
您可以尝试时间功能 . 和读/写结构 .
然而,正确的方法是使用c基本文件存储而不是转储二进制数据 .