Also ich versuche, einen Stapel in c zu implementieren. Ich habe alle Funktionen geschrieben, aber ich habe ein Problem mit der Funktion fgetc. Also hier ist ein Teil meines Codes:Eingabe Zeichen in separaten Zeilen in c
while (1) {
printf("Choose an option: \
\n 1 Push \
\n 2 Pop \
\n 3 Top \
\n 4 Print \
\n 5 Exit\n");
option = fgetc(stdin);
opt = ctoi(option);
while (opt < 1 || opt > 5) {
printf("Wrong entry, let's try again: \n");
option = fgetc(stdin);
opt = ctoi(option);
}
switch (opt) {
case 1: push(&stack, fgetc(stdin)); break;
case 2: pop(&stack); break;
case 3: top(&stack); break;
case 4: print_stack(&stack); break;
case 5: return 0; break;
default: printf("impossible"); break;
}
}
ctoi ist eine Funktion, die ich geschrieben habe, die char in int konvertiert. Das Problem ist, wenn ich eingeben, für exmple:
1
und drücken Sie die Eingabetaste, der erste Aufruf der Funktion werden mich fragen, für die Eingabe, aber die zweite (in der Push-Funktion Call) wird automatisch nach vorn ‚\ n 'als Argument, und ich möchte' \ n 'ignorieren und mich erneut um eine Eingabe bitten. Ist das möglich? Vielen Dank!
Also, um es zu vergleichen, und ignoriert ... –
kann ich nicht, weil der zweite Anruf ist ein Argument einer anderen Funktion. –
Sie können Ihre Logik ändern, Sie wissen ... –