2015-05-09 37 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]',我不確定你的意思。 –