eingabe=getchar(); Error

AnsgarvS

Grünschnabel
Liebe Community

ein Pogramm in dem der Unterschied zwischen scanf und getchar erklärt werden soll funktioniert nicht da irgend etwas an der getchar funktion nicht stimmt.

Das Pogramm:

Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char Eingabe;
printf("scanf() Eingabeaufforderung:\n");
scanf("%c",&Eingabe);
getchar();
printf("Deine Eingabe wurde auf dem Bildschirm ausgegeben und \ndu musstest Enter druecken. Deine Eingabe war: %c\n\n",Eingabe);
printf("getch() Eingabeaufforderung:\n");
eingabe=getch();
printf("Deine Eingabe wurde nicht auf dem Bildschirm ausgegeben und \ndu musstest nicht Enter druecken. Deine Eingabe war: %c\n\n",Eingabe);
system("PAUSE")
return 0;
}

Danke im Vorraus


LG Ansgar
 
Moin,

sind die beiden nicht weitgehend gleich?

Returns the next character from the standard input (stdin).
It is equivalent to getc with stdin as its argument.
Quelle: http://www.cplusplus.com/reference/clibrary/cstdio/getchar/

Read formatted data from stdin
Reads data from stdin and stores them according to the parameter format into the locations pointed by the additional arguments. The additional arguments should point to already allocated objects of the type specified by their corresponding format tag within the format string.
Quelle: http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

Aber sollte es nicht wenigstens
C++:
char Eingabe = getchar();
heissen :confused:

Gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:
Der Unterschied:
Da getch das Gegenteil von
scanf ist, ist klar, dass man bei dieser Eingabeaufforderung seine Eingabe weder sieht, noch diese
ändern oder bestätigen könnte.(auszug aus einer pdf zum C lernen)

Das Pogramm ist ebenfalls aus diesem Textdokument
 
Gegenteil würd ich nicht sagen.
Das Gegenteil von scanf ist, wenn schon, printf.

Aber jetzt wissen wir immer noch nicht, was nicht geht...?
 
das kommt wenn ich das Pogramm ausführe:

scanf()Eingabeaufforderung
2 (ich gebe 2 ein und drücke enter)
Deine Eingabe wurde auf dem Bildschirm ausgegeben und du musstest Enter druecken. Deine Eingabe war:2

getch() Eingabeaufforderung:
2(ich gebe 2 ein und drücke enter)
Deine Eingabe wurde nicht auf dem Bildschirm ausgegeben und du musstest nicht Enter druecken. Deine Eingabe war:2

ich merke keinen Unterschied oder muss das so ich bin momentan etwas verwirrt.
 
Hm?

getch() verlangt kein ENTER. Bist du sicher, dass die Ausgabe nicht vor dem ENTER kommt?

/EDIT: Zur ursprünglichen Frage:
scanf() kann um einiges mehr als getchar(), z.B. Zahlen / Strings direkt einlesen.
getchar() liest immer nur einen char (= scanf("%c",String); )

Gruss
cwriter
 
Zuletzt bearbeitet:
Das ist ja das Problem, dass ich Enter drücken muss, um weiter zu kommen.
Aber egal ich mach erstmal weiter ich habs ja jetzt verstanden.

Danke dafür!


LG Ansgar
 
Hi.

Das Programm was du getestet hast, kann unmöglich das Programm gewesen sein, welches du uns hier gezeigt hast, da sich das gezeigte Programm nicht kompilieren läßt. So kannn dir niemand helfen.

Nachdem ich die Fehler ausgemerzt habe, erhalte ich folgende Ausgabe:
Code:
scanf() Eingabeaufforderung:
k
Deine Eingabe wurde auf dem Bildschirm ausgegeben und
du musstest Enter druecken. Deine Eingabe war: k

getch() Eingabeaufforderung:
Deine Eingabe wurde nicht auf dem Bildschirm ausgegeben und
du musstest nicht Enter druecken. Deine Eingabe war: s

Press any key to continue . . .
Eingegeben habe ich k ENTER s.

Gruß

PS: Sowohl getchar, als auch getch geben einen int zurück.
 
Zurück