макрос '__TIME__' и '__TIMESTAMP__' не может обновляться при разработке с c ++ - PullRequest
0 голосов
/ 01 февраля 2019

Я разработал приложение для Mac с помощью Qt, я хочу записать текущее время в log.txt, поэтому я использую макрос __TIME__ и печатаю значение __TIME__ перед записью в log.txt,

cout << "timeis----" << __TIME__ << endl;

Это всегда показывает мне старое значение, которое не я, за исключением того, что мне делать, если я каждый раз получаю текущее время, большое спасибо!

1 Ответ

0 голосов
/ 01 февраля 2019

Вот один из возможных способов добиться того, что вы ищете, однако одна из функций была помечена как устаревшая, и в настоящее время я не нашел обходного пути, возможно, в ближайшем будущем, когда у меня будет доступен c ++ 20, этотУстаревание может быть разрешено с помощью всех новых функций, добавляемых в библиотеку chrono.На данный момент это просто для демонстрации того, как вы можете получить время и дату ...

#include <iostream>
#include <chrono>

#pragma warning(disable : 4996)
#include <ctime>

int main() {
    auto currentTime = std::chrono::system_clock::now();
    std::time_t time = std::chrono::system_clock::to_time_t( currentTime );

    std::cout << "timeis---- " << std::ctime(&time) << '\n';

    return 0;
}

Возможный вывод:

timeis---- Fri Feb 1 03:22:21 2019

Однако имейте в виду, что функция std::ctime()помечен как устаревший.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...