"HH:MM:SS"形式で現在の時刻を文字配列(文字列)に変換する必要があります。単にprintf("%s", timeString);
HH:MM:SS形式の文字列への時間(C言語プログラミング)
と私はところでtimeval
とtime_t
種類にかなり混乱しているので、任意の説明は素晴らしいだろう:)
EDIT: だから私はのstrftimeなどで試みたが、それはちょっと働きました。私のコードは以下の通りです:
time_t current_time;
struct tm * time_info;
char timeString[8];
time(¤t_time);
time_info = localtime(¤t_time);
strftime(timeString, 8, "%H:%M:%S", time_info);
puts(timeString);
しかし、出力は "13:49:53a ?? J`sS?"です。
最後に "?? J" s? "とは何が起こっていますか?
ああ、もちろん。ありがとう、相棒! – o01
私は通常、悲観的なアプローチをとり、バッファサイズを過剰に割り当てます。例えば、 'timeString []'を20文字程度のcharsと宣言します。メモリは安く、ここでは余分なバイト数しか話していません。後でフォーマット文字列を変更することに決めたときに、バッファ長を更新するのを忘れてしまったときには、あなたを保存します。 –
コンパイラに配列のサイズを渡すために 'sizeof()'を使用する場合は+1してください。 –