Wie man den C++-Fehler behebt: no member named 'put_time' in namespace 'std'

Problem:

Sie versuchen, die std::put_time-Funktion in Ihrer C++-Anwendung zu verwenden, aber Sie erhalten die folgende Compiler-Fehlermeldung:

error.txt
main.cpp:17:16: error: no member named 'put_time' in namespace 'std'
    ss << std::put_time(std::localtime(&localTime), "%F_%H-%M-%S") << extension;
          ~~~~~^

Lösung

Die std::put_time-Funktion ist Teil des <iomanip>-Headers in C++, sodass Sie diesen Header in Ihren Code einbinden müssen, um diese Funktion zu verwenden. Fügen Sie den folgenden Code am Anfang der Datei hinzu, in der der Fehler auftritt:

main.cpp
#include <iomanip>

Vollständiges Beispiel:

main.cpp
#include <iostream>
#include <iomanip>
#include <chrono>

int main() {
    auto now = std::chrono::system_clock::now();
    auto localTime = std::chrono::system_clock::to_time_t(now);
    std::cout << std::put_time(std::localtime(&localTime), "%F %T") << std::endl;
    return 0;
}

Check out similar posts by category: C/C++, GCC Errors