2015-05-09 20 views
1

编辑代码: 我现在可以在文件中写入时钟时间,但问题是,它不完全是时钟时间。它写了奇怪的数字,如00F3D ..等等。我不知道如果是由于因为时钟的时间包含在它冒号当它在字符串格式,例如:0:12C++高分列表调试错误

// Used for Highscores 
struct highscore 
{ 
    char name[10]; 
    int zombiesKilled; 
    char Date[10]; 
    char *clock[10]; 
}; 

void highscoreBoard(int option, int zombKilled) 
{ 
    int quanity = 0; 
    int playerScore = 0;  // the in Results for Highscores 
    FILE *streaming; 
    highscore data[10]; 


    char *newClock = new char[clockData.clockTime.length() + 1]; 
    strcpy(newClock,clockData.clockTime.c_str()); 
    switch (option) 
    { 

} 

回答

0

你设置创建文件后,文件的权限?似乎权限已被设置为不读,不写,不执行。

+0

你究竟是什么意思? – Ryan12345

+0

检查您是否具有读取和写入文件的适当权限。另外,在以读取模式打开它之后,您并未关闭流,但是在情况0下以写入模式打开之前,请确保在打开新流之前关闭所有流。 – holtc

+0

我明白了!好吧,这太奇怪了。我能够成功地在文件中写入,但是在我进入它之后,我可以发现错误,但它仍然写入文件! – Ryan12345

1

你的highscore结构有string clock在里面。 string类型的对象不适合直接从内存写入文件,因为它们可能包含指向其他内存部分的指针。

这里有两种解决方案:或者将clock更改为类似于其他结构成员的char数组,或者不使用二进制高分的写法,而是将文件写为文本(这更为复杂,但会导致一个人类可读的文件)。

+0

嘿黑暗,我似乎现在绕过了错误。我将字符串时钟更改为char [10],它将文件写入文件!但现在的问题是它写了奇怪的数字,如00F34D ..等等。我上面编辑了我的答案,看看你能帮助我。 – Ryan12345

+0

据我所知,'clock'不应该是一个指针数组。只需使用'char clock [10]',然后使用strcpy将值复制到其中(假设您可以保证复制的字符少于10个字符)。不要像现在这样分配'时钟[5]',我不确定你的意思。 –