2012-05-10 7 views
0

curTimeとpastTimeの実際の値が600秒異なっていても、 "ctime"を使用すると、curTimeとpastTimeの結果が同じになります。ctime(x)= ctime(x-600)なぜですか?

ctimeを使用しているときに、両方とも同じ文字列時間をどのように取得できますか?静的に割り当てることができる文字列を返すctime

THX

struct _timeb timebuffer; 

_ftime(&timebuffer); 

const time_t curTime = (const time_t)timebuffer.time; 
const time_t pastTime = curTime - (const time_t)600; 

s.Format("%d %s\n%d %s", curTime, ctime(&curTime), pastTime, ctime(&pastTime)); 
MessageBox(s); 

答えて

4

したがって、2つの呼び出しのうちの一方が、もう一方が生成する文字列を上書きしています。 これを2つのprint文に分割するか、ctimeの戻り値を一時的にコピー(文字列コピー)する必要があります。

+1

...または 'strftime'を使用してください。バッファを管理する必要があります。 –

+0

私はそれぞれsprintfを使ってしまった。しかし、strftimeは私が表示したいものを使うだけで使いやすくなります。どうも – jdl

関連する問題