Как распечатать миллисекунды в C?

Я хочу напечатать время в формате чч: мм: сс: мс (миллисекунды). Я мог печатать в формате чч: мм: сс. Как можно распечатать оставшиеся миллисекунды?

3 ответа

Решение
#include<sys/timeb.h>
#include<time.h>

int main(void) {
    struct timeb tp;
    ftime(&tp);
    char timeString[80];
    strftime(timeString, sizeof(timeString), "%H:%M:%S", localtime(&tp.time));
    printf("%s:%d", timeString, tp.millitm);
    return 0;
}

Это то, что я использую в Linux ...

struct timeval tv;
gettimeofday(&tv,0);
time_t long_time;
struct tm *newtime;
time(&long_time);
newtime = localtime(&long_time);
char result[100] = {0};
sprintf(result, "%02d:%02d:%02d.%03ld", newtime->tm_hour,newtime->tm_min,newtime->tm_sec, (long)tv.tv_usec / 1000);
return result;

У меня нет опыта работы в Windows .. попробуйте найти похожие звонки..

Если вы работаете с библиотекой MSDN, вы можете попробовать

GetSystemTimeAsFileTime( pointerToSetToTime );

Который устанавливает аргумент указателя на текущее системное время с интервалом в 100 наносекунд.

Другие вопросы по тегам