我在寫一個簡單的CLI日曆,並將計劃活動的數據存儲在由幾個整數,一個字符串和一個指向tm
結構體的指針組成的簡單結構中。在向量中推結構體覆蓋時間組件
但是,當我將這些結構推入矢量中時,所有*tm
(僅限於那些)被我推送的最新版本覆蓋。其他一切都保持不變。因此,如果我在2016年10月2日推出「A」,並在2016年5月11日推出「B」,我將按計劃於2016年5月11日發佈兩項參賽作品,不過其他細節仍保留相同。
任何人都可以幫我弄清楚有什麼問題嗎?
如果你想看到的代碼,它在這裏
while (getline(caleList, tempstring)) {
cout << tempstring << endl;
Appointment tempapp = unwrapAppointment(tempstring);
apps.push_back(tempapp);
}
在這裏,我從SAVEFILE閱讀,通過unwrapAppointment
解碼條目(我檢查是工作),並簡單地推回。
編輯:
struct Appointment
{
int ID;
bool alarm;
tm* dateAndTime;
string text;
};
這是給麻煩
嘗試讀取活動時,該日誌的結構:
Calendar Module Activated. 1 to mark an activity, 2 to read all activities, anything else to return to main.
> 2
Encoded activities:
0|61397616601|First|1
0 First Fri Aug 13 14:30:01 3915 1
1|61424667901|Second|0
1 Second Wed Jun 21 16:45:01 3916 0
2|61416011701|Third|1
2 Third Mon Mar 13 12:15:01 3916 1
Decoded activities:
Activity number 0: First, set for the day 13/2/2016 at 12:15
Activity number 1: Second, set for the day 13/2/2016 at 12:15
Activity number 2: Third, set for the day 13/2/2016 at 12:15
編碼的活動代碼的附加件使用mktime和localtime將tm轉換爲time_t,反之亦然。另外,我只注意到我把幾個月和幾年的轉換搞砸了,難道可以解決問題嗎?
請張貼[MCVE(http://stackoverflow.com/help/mcve)。 –
問題在於你沒有向我們顯示的代碼。 –
發表了更多的代碼,但是當我完成粘貼時,問題已經得到解答,無論如何感謝您的時間! – Brabantis