Fragen zu getch()
-
Hallo zusammen,
ich habe das unten angegebene Programm zur Übung geschrieben. Zweck ist eine "Passwortfrage". Meine Frage ist jetzt:
- Gibt es irgendwelche Nebeneffekte die ich nicht kenne?
- Wenn ich die <conio.h> nicht einbinde funktioniert alles genauso, der Compiler erzeugt aber die Warnung "implicit declaration of function `getch'|". Was genau heißt das?
- Gehört getch() zum C-Standard? Wenn nicht, was gibt es für Alternativen?Dank & Gruß
Dennis#include <stdio.h> #include <conio.h> int main (void) { char cPasswort[6]; int n; cPasswort[0]='\0'; printf("Passwort eingeben (5 Zeichen): "); for(n=0; n<5; n++) { cPasswort[n]=getch(); } printf("\n\n"); printf("Das Passwort ist: "); for (n=0; n<5; n++){ printf("%c", cPasswort[n]); } return 0; }
-
conio.h gehört nicht zum C Standard, genauso wenig wie getch(). Allerdings gibt es getchar() und getc(), jeweils deklariert in stdio.h.
-
Janjan schrieb:
conio.h gehört nicht zum C Standard, genauso wenig wie getch(). Allerdings gibt es getchar() und getc(), jeweils deklariert in stdio.h.
Danke, das habe ich schon geahnt. Aber wie kann ich dann Standard-konform die gleiche Funktionalität erfüllen? Sprich: Eingabe einer bestimmten Menge von Zeichen ohne abschließendem Enter?
Gruß Dennis
-
Gar nicht.
-
Janjan schrieb:
Gar nicht.
Nichts für ungut, aber eine mächtige Sprache wie C soll so etwas nicht können? Das glaube ich nicht. Vielleicht ist der Aufwand hoch, aber das es unmöglich ist, ist ja eher unwahrscheinlich?
Vielleicht ist hier noch jemand der sich gut auskennt?
-
Incubus84 schrieb:
Janjan schrieb:
Gar nicht.
Nichts für ungut, aber eine mächtige Sprache wie C soll so etwas nicht können? Das glaube ich nicht. Vielleicht ist der Aufwand hoch, aber das es unmöglich ist, ist ja eher unwahrscheinlich?
Vielleicht ist hier noch jemand der sich gut auskennt?Es gibt nichts im Standard C was dies bietet. Da musst du auf platformabhängige Dinge zurückgreifen.
-
Incubus84 schrieb:
Nichts für ungut, aber eine mächtige Sprache wie C soll so etwas nicht können?
C ist eine mächtige Sprache?
Lies mal hier weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html
-
Hmm.. das ist enttäuschend.
mngbd schrieb:
Lies mal hier weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html
Den Thread kenne ich.. mir fehlt nur gerade der Bezug zum Thema "Mächtigkeit"..
-
Incubus84 schrieb:
Hmm.. das ist enttäuschend.
mngbd schrieb:
Lies mal hier weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html
Den Thread kenne ich.. mir fehlt nur gerade der Bezug zum Thema "Mächtigkeit"..
In C kannst du alles machen, die Sprache ist Turing-Vollständig. Die Standard-Bibliothek muss nicht für jeden Mist eine Funktion mitliefern. Was du willst ist schlichtweg Platformabhängig und wird von der Standard-Bibliothek nicht gedeckt - das heißt nicht, dass es nicht möglich ist.
-
Incubus84 schrieb:
mngbd schrieb:
Lies mal hier weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html
Den Thread kenne ich.. mir fehlt nur gerade der Bezug zum Thema "Mächtigkeit"..
Der FAQ-Thread hat nichts mit der Mächtigkeit zu tun.
C ist nicht viel mehr als ein portabler Makro-Assembler. Von Mächtigkeit ist da keine Spur. C ist für Betriebsysteme, Treiber und solche Dinge gedacht. Wenn du "Mächtigkeit" definierst als: nahe an der Maschine, dann ist C mächtig. Die meisten sehen das aber genau umgekehrt.
-
Okay, danke schonmal.
Was ist mit den Anderen Punkten: ist das "sauberer" Code? Und was ist mit der Warnung? Warum funktioniert das Programm trotz der nichteingebundenen Header-Datei? Ich nutze übrigens CodeBlocks.