Außerdem fehlt hier:
das break;Code:case 99: printf("Neue Position wird erstellt!");gets(posname);
Außerdem fehlt hier:
das break;Code:case 99: printf("Neue Position wird erstellt!");gets(posname);
MfG Torrentula
Erbsenzählen & Klugsch... ein:
Das hätte an der Stelle aber keine Funktion
Erbsenzählen & Klugsch... aus
Edit: Wegen guten Stils hast Du natürlich Recht - spätestens wenn man einen default-Zweig braucht und dann das break vergisst, bekommt man die wunderlichsten Resultate.
Geändert von danimath (10.04.2012 um 11:27 Uhr)
#define true ('/'/'/')
#define false ('-'-'-')
ich konnte nicht widerstehen :PErbsenzählen & Klugsch... ein:
Das hätte an der Stelle aber keine Funktion
Erbsenzählen & Klugsch... aus
![]()
MfG Torrentula
Danke Leute für Eure Hilfe!!!!
Hab die Lösung meines Problems gefunden...Konnte es aber leider noch nicht testen. =(
Hatte die Vorschläge von Euch ausprobiert und in scanf \n zu benutzen hat leider nichts gebracht...
Dieser Lösungsvorschlag klingt gut:
Hilfe zum Thema: C-ANSI, Tastaturzeichen, Einlesen
Bekanntes Problem der C-Library
Die Ursache: die Eingabe-Funktionen von stdio.h werden alle mit ENTER vom Benutzer abgeschlossen.
Dieses ENTER-Zeichen wird nach dem Einlesen und Entfernen der eingegebenen Tastaturzeichen
nicht aus dem Eingabepuffer entfernt - es bleibt als einziges Zeichen darin zurück.
Wird nun mit gets () eine neue Eingabe vorgenommen, findet gets () im Eingabepuffer das Zeichen ENTER vor und glaubt,
die Eingabe wäre also schon abgeschlossen. Also wartet gets () nicht auf die eigentliche Eingabe,
sondern bricht diese ab und es wird die nächste Programmanweisung ausgeführt. Der Programmbenutzer hat somit den Eindruck, als würde gets () übersprungen.
Abhilfe:
vor gets den Eingabepuffer säubern mit
fflush (stdin);
Zwar ist nach der C-Library-Definition von fflush diese Funktion bei Eingabepuffern undefiniert.
Jedoch haben alle bekannten C-Libraries fflush (stdin); so programmiert,
dass dabei der Eingabepuffer gelöscht wird (d.h. alle Zeichen, die sich noch darin befinden, werden entfernt,
so auch noch das von scanf zurückgebliebene ENTER).
Hinweis:
man sollte für string-Eingaben unbedingt fgets benutzen und sowohl gets als auch scanf vermeiden;
zumal die Eingabe mit scanf beim ersten Leerzeichen abgebrochen wird.
Hoffe, dass es klappt =)
Danke für Eure schnelle Hilfe!
Gruß
Pete
Lesezeichen