Problem mit String.
-
Hi.
Ich habe hier eine Struktu angelegt die eigentlich recht simpel ist.
Möchte einen Namen einlesen und direkt danach wieder asugeben. Beim Nachnamen kommt aber plötzlich eine 0. Woran kann das liegen?thx&cu
-
das ist alzheimer O_o
der text:#include <stdio.h> struct person { char vorname[20]; char nachname[20]; int alter; } schueler[10]; main() { int anzsch,i; printf("Wie viele Schueler?"); scanf("%d", &anzsch); for (i=0;i<anzsch;i++) { gets(schueler[i].vorname); puts(schueler[i].vorname); gets(schueler[i].nachname); puts(schueler[i].nachname); scanf("%d", &schueler[i].alter); printf("%d", schueler[i].alter); } return 0; }
-
Also du kannst es zum laufen bringen, wenn du vor den gets jeweils ein
fflush(stdin); schreibst.
Damit wird dann das Enter aus dem Eingabepuffer gelöscht.Warscheinlich wärst du aber mit fgets besser beraten.
Ich würds dir gern erklären warum, habs aber selber vergessen
Such mal im Forum danach.
-
Ja, es ist besser fgetc zu benutzen
gets() reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF, which
it replaces with '\0'. No check for buffer overrun is performed (see BUGS below).aus man gets