unsichtbare Eingabeaufforderung
-
Ich glaube ich habe den Fehler gefunden
Eingabe=getch();
müsste eigentlich
Eingabe=getchar();
sein...
-
08mmarte schrieb:
1>c:\dokumente und einstellungen\mamar\eigene dateien\visual studio 2005\projects\unsichtbar\unsichtbar\unsichtbar.cpp(17) : error C3861: "getch": Bezeichner wurde nicht gefunden.
Da musst du in der Hilfe (z.B. MSDN) nachsehen, welchen Header du für diese Funktion einbinden musst!
Btw, ANSI-C, nicht Ansic...
-
scanf() Eingabeaufforderung: 1 Deine Eingabe wurde auf dem Bildschirm ausgegeben und du musstest Enter druecken. Deine Eingabe war: 1 getch() Eingabeaufforderung: 1 Deine Eingabe wurde nicht auf dem Bildschirm ausgegeben und du musstest nicht Enter druecken. Deine Eingabe war: 1 Drücken Sie eine beliebige Taste . . .
Das gibt es aus, in Zeile 6 - 8 ist der Fehler, Hier steht "Deine Eingabe wurde nicht auf dem Bildschirm ausgegeben und du musstest nicht Enter druecken." was nicht stimmt, denn ich musste Enter drücken...
-
Wenn du nicht Enter drücken willst, kannst du z.B. _kbhit() in Verbindung mit getch() benutzen. Kleines Beispiel:
int main() { printf("Eingabe: "); while(!_kbhit()); char c=getch(); printf("\b"); printf("\nEingegebenes Zeichen: %c",c); getchar(); }
Standarfkonformes ANSI-C ist das nicht, aber wen kümmert's... (nicht schlagen, bitte
)
-
Bevor es passiert, hier schon mal der Tipp: für das Beispiel conio.h einbinden!
-
Danke _matze hast mir mal wieder geholfen...
-
Kann man so auch Sätze oder einzelne Wörter einlesen??
-
#include "stdafx.h" #include "conio.h" int main() { while(!_kbhit()); char a=getch(); printf("\b"); while(!_kbhit()); char b=getch(); printf("\b"); while(!_kbhit()); char c=getch(); printf("\b"); while(!_kbhit()); char d=getch(); printf("\b"); while(!_kbhit()); char e=getch(); printf("\b"); printf("\nSie haben: [%c%c%c%c%c] eingegeben",a, b, c, d, e); getchar(); }
Funktioniert mit Wörtern...
Ist seh aufwändig muss sicher einfacher gehen, oder?
-
Soll das auf eine Passworteingabe hinauslaufen?
Mach lieber eine Endlosschleife, in der du solange einzelne Zeichen einliest (und die Anzeige mit '\b' löschst), bis ein bestimmtes Ende-Zeichen (z.B. ESC) eingegeben wurde. So beschränkst du dich nicht auf eine bestimmte Anzahl von Zeichen.
-
Nein, das läuft nicht auf ein Passwort hinaus...
Das mit der Schleife werde ich sofort ausprobieren...
-
Ein Beispiel:
int main() { char c; std::string s; printf("Eingabe: "); for(;;) { if(_kbhit()) { c=getch(); if(c==27 || c==13) { //Abbruch mit ESC oder RETURN break; }else { s+=c; } printf("\b"); } } printf("\nEingegebene Zeichenkette: %s",s.c_str()); getchar(); }
Wupps! Das ist ja das C-Forum, also nimm kein std::string!
-
08mmarte schrieb:
1>c:\dokumente und einstellungen\mamar\eigene dateien\visual studio 2005\projects\unsichtbar\unsichtbar\unsichtbar.cpp(17) : error C3861: "getch": Bezeichner wurde nicht gefunden.
Und C Code tut man in einer .c Datei rein und nich in .cpp. Du solltest C Code nicht mit einem C++ Compiler jagen.
-
_matze schrieb:
Btw, ANSI-C, nicht Ansic...
Stimmt! Und vor allem ist die Funktion getch() nicht in ANSI-C bekannt.
-
08mmarte schrieb:
Hab nur mal irgendwo gelesen, dass es mit getch() oder so ähnlich geht...
Es gibt kein getch in ANSI C! Das ist eine Betriebssystem/Compiler spezifische Sache.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.