C Integereingabe fehlerhafte Speicherung?

JackhammerX

Cadet 2nd Year
Registriert
Feb. 2009
Beiträge
23
Hallo zusammen,

ich lerne zurzeit Programmieren an einer Fachhochschule.
Die derzeitige Aufgabenstellung ist sehr einfach, mein Programm läuft auch, bis auf eine "Kleinigkeit".

Jetzt konnte ich den Fehler bis auf die Eingabe zurückverfolgen.

Und zwar soll ein Datum im Format "tt.mm.jjjj" eingegeben werden. Damit wird dann weitergerechnet. Alles was danach passiert funktioniert auch.

Wenn ich allerdings einen der Monate August (08) oder September (09) wähle, speichert mir folgender Code die Daten falsch ab.

Code:
#include <stdio.h>

int tag, monat, jahr;

int main() {
	printf("Geben Sie nun das Datum in Format tt.mm.jjjj ein: ");
	scanf("%i.%i.%i",&tag,&monat,&jahr);

	printf("Es ist der %i.%i.%i", tag, monat, jahr);

	return 0;
}

Beispiel1: Ich gebe beim Ausführen ein: "03.05.2011"
Ausgabe: "Es ist der 3.5.2011"

Beispiel2: "03.08.2011"
Ausgabe: "3.0.0"

Beispiel3: "21.09.2011"
Ausgabe: "21.0.0"

Ergo funktioniert die Wertspeicherung für "monat" und "jahr" nicht mit den Integerzahlen 8/9 für "monat"? Da dass Datum explizit im Format "tt.mm.jjjj" eingegeben werden soll und ich wirklich nicht dahinterkomme was der Fehler ist, wollte ich hier einmal nachfragen, ob es für dieses Problem eine Lösung gibt?
 
bu1137 schrieb:
Stichwort oktal. Probier's mal mit %d statt %i

Och mensch, es muss zu spät (oder auch zu früh - Ansichtssache) sein, dankeschön. Jetzt kann ich auch mal schlafen gehen :n8:
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben