Menustruktur will einfach nicht
-
Also ich habe folgenden quelltext:
#include <stdio.h> #include <stdlib.h> /*deklerationen*/ char menu(); char menu_search(); main() { char c; c = menu(); return; } char menu() { char a; printf("Willkommen zur Personendatei\n"); printf("Was möchten sie tun?\n"); printf("-------------------------------\n"); printf("-------------------------------\n"); printf("Personendatei einlesen........1\n"); printf("Personendaten ausgeben........2\n"); printf("Personendaten durchsuchen.....3\n"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("Programm schließen............Q\n\n"); scanf("%c", &a); if (a== '3') a = menu_search(); return a; } char menu_search() { char b; printf("Willkommen zur Personendatei\n"); printf("Was möchten sie tun?\n"); printf("-------------------------------\n"); printf("-------------------------------\n"); printf(">>Nach Vornamen suchen........4\n"); printf(">>Nach Nachnamen suchen.......5\n"); printf("-------------------------------\n"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("Programm schließen............Q\n\n"); scanf("%c", &b); return b; }
Mein Problem: Wenn ich jetzt im ersten menu die 3 drück, also ins zweite menu geh, dann kommt zwar das menu noch, doch es wird nicht auf ne eingabe gewartet und das prog endet. eigentlich sollte doch noch auf ne eingabe gewartet werden, oder nicht? Ich dreh mich echt im kreis.
mfg
computaholic
-
Da lass dich mal besser in Ansi-C Forum verschieben
-
besser ist das
Ich bin zwar kein C-Spezi, aber glaube trotzdem eine Loesung zu haben:
[cpp] ...
printf("-------------------------------\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("Programm schließen............Q\n\n");
setvbuf(stdin,NULL,_IONBF,0);
scanf("%c", &b);
... [/cpp]Bei mir gehts so.
Gruss,
DeSoVoDaMu
-
oh, ausversehen ins falsche forum gepostet, sorry.
das funzt allerdings auch mit dem tipp nicht.
-
Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ok, auf keinen fall flush(stdin)
das wurde in nem anderen thread hier totgequatschtkannst mal schnell durchfliegen
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111223.html
ich find die wichtigen posts da drin jetz nicht, sorry
-
probiers mal so
do{scanf("%d", &xxx);} while(getchar() != '\n');
müsste funzeln damit man fflush nicht hernehmen muss