Hallo zusammen,
nach einer Menge Java wollte ich mich mal mit der Sprache C auseinander setzen. Ich fange auch mit den Basics an und zermürbe mir gerade bei einer Sache den Kopf.
Ich habe ein char array für den Namen des Benutzers und ein unsigned short für das Alter. Wenn ich beides Abfrage und mit printf ausgebe, wird der Name aber gelöscht und nur durch ein Leerzeichen angezeigt.
Nach ein bisschen Recherche habe ich rausgefunden, dass bei Zeile 8 und 11 ein %hu hin muss. Danach klappt alles. Setze ich in Zeile 2 ein unsigned short* age; klappt es auch mit %u. Jetzt frage ich mich nur, warum der Name bei %u verschwindet und warum es bei unsigned short* auch mit %u geht. Wo ist mein Denkfehler?
nach einer Menge Java wollte ich mich mal mit der Sprache C auseinander setzen. Ich fange auch mit den Basics an und zermürbe mir gerade bei einer Sache den Kopf.
Ich habe ein char array für den Namen des Benutzers und ein unsigned short für das Alter. Wenn ich beides Abfrage und mit printf ausgebe, wird der Name aber gelöscht und nur durch ein Leerzeichen angezeigt.
C:
char name[20];
unsigned short age;
printf("Hi there\n");
printf("What's your name: ");
scanf("%s", &name);
printf("And your age: ");
scanf("%u", &age);
printf("Welcome %s to the first C program.\n", name);
printf("I see you're %u years old.\n", age);
return 0;
Nach ein bisschen Recherche habe ich rausgefunden, dass bei Zeile 8 und 11 ein %hu hin muss. Danach klappt alles. Setze ich in Zeile 2 ein unsigned short* age; klappt es auch mit %u. Jetzt frage ich mich nur, warum der Name bei %u verschwindet und warum es bei unsigned short* auch mit %u geht. Wo ist mein Denkfehler?