Единственный способ, которым это:
cout<<"epoch time ="<< (unsigned)time(0);
может печатать в шестнадцатеричном формате, если вы ранее установили std::cout
в шестнадцатеричный режим.
Например:
#include <ctime>
#include <iostream>
#include <iomanip>
int main() {
std::cout << " decimal epoch time = " << time(0) << "\n";
std::cout << std::hex;
std::cout << "hexadecimal epoch time = " << time(0) << "\n";
}
Вывод в моей системе:
decimal epoch time = 1528663129
hexadecimal epoch time = 5b1d8c59
Это, на мой взгляд, самая раздражающая особенность ввода-вывода C ++: чтобы напечатать отдельный элемент в формате, отличном от заданного по умолчанию, вы должны изменитьсостояние выходного потока, которое влияет на все последующие выходные данные в этом потоке.
Если вы хотите напечатать один элемент данных в шестнадцатеричном формате (что вы, вероятно, сделали ранее в своей программе), вы можете сделать что-тонапример:
std::cout << "x = " << std::hex << x << std::dec << "\n";
Устанавливает выходной формат обратно в десятичный формат независимо от того, каким он был ранее.Вероятно, есть сложный способ восстановить его, каким бы он ни был.