Visual Studio 2022 mag kein #include<ctime>

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
Antworten
Sumelis
Neues Mitglied
Neues Mitglied
Beiträge: 1
Registriert: 26.05.22 00:33

Hat einer von euch in KirchUllaPrinzPeter_2018_C++-Lernenundprofessionellanwenden in Kapitel 13, die Übung 1 gemacht.
Mein Compiler mag diese Aufgabe nicht.

Ich habe die komplette Aufgabe in meinem Compiler rein geladen aus dem PDF Buch um meinem Fehler zu finden. Aber der Code geht nicht.
Hier ist der Code aus dem Buch:

// ----------------------------------------------------
// datum.h
// Erste Definition der Klasse Datum.
// ----------------------------------------------------
#ifndef _DATUM_ // Mehrfaches Inkludieren verhindern.
#define _DATUM_
class Datum
{
private: // Geschützte Elemente:
short tag, monat, jahr;

public: // Öffentliche Schnittstelle:
void init(void);
void init( int tag, int monat, int jahr);
void print(void);
};
#endif // _DATUM_


// ----------------------------------------------------
// datum.cpp
// Implementierung der Methoden der Klasse Datum.
// ----------------------------------------------------
#include "datum.h"
#include <iostream>
#include <ctime>
using namespace std;
// ---------------------------------------------------
void Datum::init(void) // Aktuelles Datum holen und
{ // den Datenelementen zuweisen.
struct tm *zeit; // Zeiger auf Struktur tm.
time_t sec; // Für die Sekunden.
time(&sec); // Aktuelle Zeit holen.
zeit = localtime(&sec); // Eine Struktur vom Typ tm
// initialisieren und Zeiger
// darauf zurückgeben.
tag = (short) zeit->tm_mday;
monat = (short) zeit->tm_mon + 1;
jahr = (short) zeit->tm_year + 1900;
}
// ---------------------------------------------------
void Datum::init( int t, int m, int j)
{
tag = (short) t;
monat = (short) m;
jahr = (short) j;
}
// ---------------------------------------------------
void Datum::print(void) // Datum anzeigen
{
cout << tag << '.' << monat << '.' << jahr
<< endl;
}

// ----------------------------------------------------
// datum_t.cpp
// Mit Objekten der Klasse Datum arbeiten.
// ----------------------------------------------------
#include "datum.h"
#include <iostream>
using namespace std;
int main()
{
Datum today, birthday, aDate;
today.init();
birthday.init( 12, 11, 1997);
cout << "Das heutige Datum : ";
today.print();
cout << "\nDer Geburtstag von Felix: ";
birthday.print();
cout << "----------------------------------\n"
"Noch einige Testausgaben:" << endl;
aDate = today; // Zuweisung ok
aDate.print();
Datum *pDate = &birthday; // Zeiger auf birthday
pDate->print();
Datum &holiday = aDate; // Referenz auf aDate.
holiday.init( 1,5,2000); // aDate überschreiben.
aDate.print(); // holiday.print();
return 0;
}

Hier liegt der Fehler:

zeit = localtime(&sec); // Eine Struktur vom Typ tm

Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C4996 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Wie kriege ich diesen Fehler behoben ??

Gruß

Sumelis
gemuesetasse
Neues Mitglied
Neues Mitglied
Beiträge: 9
Registriert: 07.06.21 19:37

Hi,
probier es mal mit

zeit = localtime_s(&sec);
Antworten