Keine Funktion von gets in einer funktion()
-
HI, wie immer erst der code
void wargets () { char name[20]; printf("Bitte geben Sie Ihren Namen ein : "); gets(name); /* Gefährlich */ printf("Guten Tag %s\n",name); printf("Ende der gets\n"); }
Nun, wenn ich den Inhalt von der funktion kopiere und daraus neuen code machen, funktioniert es. In einer funktion nicht.
Ich versteh das nicht. Kann mir jemand das erklären?vielen dank im voraus
gruss, maximo
-
maximo schrieb:
Nun, wenn ich den Inhalt von der funktion kopiere und daraus neuen code machen, funktioniert es. In einer funktion nicht.
Siehe Signatur.
-
sorry
also es greift die funktion nicht ein und wird keine eingabe gefordert.
Dh. es wird einfach übergangen.
Jetzt besser? ^^
-
Meine Kristallkugel sagt, dass noch ein '\n' im Eingabepuffer liegt weil du ein scanf() unmittelbar vor wargets() aufgerufen hast.
PS: Wenn du schon weisst, dass gets() böse ist, warum verwendest du es dann? Stichwort fgets()?
-
TactX schrieb:
PS: Wenn du schon weisst, dass gets() böse ist, warum verwendest du es dann? Stichwort fgets()?
Manche mögen halt das Leben am Abgrund
-
danke, weisst du noch mit welcher funktion das rausnehmen kann?
@GPC: das soll ein lernprogramm sein und in einem lernprog sollte alles drin sein, auch gefährliche funktionen - so zeigt man welche funktionen nicht nehmen soll
-
Nach jedem scanf() ein
while(getchar()!='\n');
dann klappts auch mit der Nachbarin
!