Ich bin gebeten, ein Programm zu machen, um das aktuelle Datum des Systems mit Hilfe der Bibliotheksfunktion getdate anzuzeigen, getdate füllt die Datumsstruktur * datep mit dem aktuellen Datum des Systems. Die vordefinierte Datumsstruktur in Turbo C++ ist wie folgt.datumsstruktur in turbo C++
Funktion getdate hat Deklaration in Header-Datei DOS.H wie folgt.
void gatdate(struct date *datep);
Als GETDATE im Datumsstruktur * datep füllt mit dem aktuellen Datum des Systems, ich brauche eine Struktur Variable vom Typ struct Datums zu machen, ruft die GETDATE Funktion und übergibt die Adresse der Variable als GETDATE tatsächliches Argument, danach sollte der Wert dieser Strukturvariable das aktuelle Datum des Systems anzeigen. Das Strukturdatum hat die Zeichenvariable da_day als Mitglied, um den Tag des aktuellen Datums des Systems zu speichern.
Hier meine Frage, wie es möglich ist, Tage zu speichern (von 1-28/29/30/31 in der Regel) des Monats in einer Zeichenvariable?
Auch das Drucken des Wertes der Strukturvariablen wie unten
gibt das aktuelle Datum des Systems nicht korrekt.printf("year/day/month is %d/%c/%c",a.da_year,da_day,da_mon); /* a is the structure variable of the type struct date */
während die folgende Erklärung das korrekte Datum angibt.
printf("year/day/month is %d/%d/%d",a.da_year,da_day,da_mon);
Warum ist es so?
Markieren Sie dies als C++, wenn Sie C++ verwenden. Nicht C –
** Verwenden Sie TurboC++ nicht in * 2017 ***. Verwenden Sie einen [C++ 11] (https://en.wikipedia.org/wiki/C%2B%2B11) konformen kostenlosen Software-Compiler (zB recent [GCC] (http://gcc.gnu.org/) oder [Clang] (http://clang.llvm.org/) ...). TurboC++ wird Ihnen veraltete Gewohnheiten beibringen (und einige veraltete Versionen von C++, die es heute nicht wert sind, gelernt zu werden). –
BTW, in C++ würden Sie bevorzugen, [stream] (http://en.cppreference.com/w/cpp/io/basic_ostream) Ausgabe, nicht 'printf' –