skiddoo Geschrieben 9. November 2000 Geschrieben 9. November 2000 Wie kann ich unter C die Escape abfragen? Mit getchar() kann ich irgendwelche Tastatureingaben abfragen blos Escape eben nicht! cu Mohamet Zitieren
Webentwickler Geschrieben 9. November 2000 Geschrieben 9. November 2000 Ahoi, mal sehen, was ich mir in C gemerkt habe. Probier mal das aus: char=escape; . . escape=getch(); . if(escape==27) { clrscr(); sleep(1); } if(escape!=27) { . . } Webentwickler Zitieren
maddin Geschrieben 10. November 2000 Geschrieben 10. November 2000 @Werbeentwickler ich hab ja nicht unbedingt vor zu merkern aber hast du schon mal was von if else gehört. damit sollen die programme irgendwie besser zu lesen sein. if (a== { } else // statt if (a!= { } [/code] ------------------ mfg maddin Zitieren
Rosebutt Geschrieben 10. November 2000 Geschrieben 10. November 2000 ooooder: versuch doch mal, die escape-funktion in ascii umzusetzen (welcher wert ist das noch mal???) dann müsste der syntax sinngemäß lauten: escapewert = CHR$(xy) (getch(escapewert)) oder so, halt irgendwie, halt irgenwie auchnicht? ach weiss, nicht, war eh nur geraten :-) nein, doch nicht... verwirre ich dich jetzt????? Zitieren
gajUli Geschrieben 10. November 2000 Geschrieben 10. November 2000 Hi Mohammed, das Problem ist in der Tat nicht ganz so einfach. In C ist es naemlich so, dass der Eingabepuffer bei Consoleneingaben erst eingelesen wird, sobald ein "return" ausgeloest wird. Also das Beispiel unten verwendet getchar() und erkennt ESC, wenn erst ESC und dann Return gedrueckt wird. Wenn das Programm auf alleiniges Druecken von ESC reagieren soll, dann brauchst Du eine Funktion, die Tastaturevents registriert. Solche Funktionen gehoeren aber nicht zum Umfang der Sprache C, sondern sind betriebssystemabhaengige Bibliotheksfunktionen Deines Compilers. Beispielsweise bietet Borland dafuer kbhit() an. Verwendest Du solche Funktionen, verlierst Du aber die ANSI-C-Kompatibilitaet. /* ANSI-C-Testdatei fuer Mohammed */ #include <stdio.h> int main() { char esc = getchar(); if (esc==27) printf("das war ein escape"); else printf("das war kein escape"); return 0; } hope this helps Uli ------------------ Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen Zitieren
Webentwickler Geschrieben 10. November 2000 Geschrieben 10. November 2000 if (a== { } else // statt if (a!= { } [/code] [/b]<HR></BLOCKQUOTE> Ahoi, kannst ruhig meckern. Ich habe ja nicht behauptet, dass C meine große Leidenschaft und Stärke ist. Webentwickler [Dieser Beitrag wurde von Webentwickler am 11. November 2000 editiert.] Zitieren
gajUli Geschrieben 10. November 2000 Geschrieben 10. November 2000 Hi Webentwickler, Du bist sogar im Recht, denn ein guter Compiler duerfte den zweiten if-clause durchaus wegoptimieren und durch ein "else" ersetzen, solange a und b nicht als "volatile" definiert sind, was sie ja auch nicht waren. Uli ------------------ Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen Zitieren
Webentwickler Geschrieben 11. November 2000 Geschrieben 11. November 2000 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Uli Luethen: Hi Webentwickler, Du bist sogar im Recht, denn ein guter Compiler duerfte den zweiten if-clause durchaus wegoptimieren und durch ein "else" ersetzen, solange a und b nicht als "volatile" definiert sind, was sie ja auch nicht waren. Uli Zitieren
gajUli Geschrieben 11. November 2000 Geschrieben 11. November 2000 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Webentwickler: Ahoi Uli, echt?! Ist ja cool! Und das mit Null Ahnung von C. Vielleicht wird doch noch einmal ein C-Programmierer aus mir *grins*. Zitieren
maddin Geschrieben 13. November 2000 Geschrieben 13. November 2000 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Uli Luethen: Hi Webentwickler, Du bist sogar im Recht, denn ein guter Compiler duerfte den zweiten if-clause durchaus wegoptimieren und durch ein "else" ersetzen, solange a und b nicht als "volatile" definiert sind, was sie ja auch nicht waren. Uli Zitieren
gajUli Geschrieben 13. November 2000 Geschrieben 13. November 2000 Hallo maddin, Comperoptimierungen kann man NICHT an Quelltextdateien erkennen, denn das Erzeugnis eines Compilers ist kein Quelltext, sondern ein executable binary; Du muesstest also einen Vergleich der Maschinenbefehle vornehmen, um eine Aussagen treffen zu koennen. Was DEIN Compiler macht, sagt auch nicht viel darueber aus, was ANDERE Compiler machen oder machen duerfen. Uli ------------------ Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen Zitieren
maddin Geschrieben 14. November 2000 Geschrieben 14. November 2000 schon richtig, bloß sprach ich anfangs von der lesbarkeit des quellcodes. du hatest mit der optimierung beim compilieren geantwortet. was ich dir damit bloß sagen wollte ist, dass es trotz gut optimierten code auch auf einen verständlich geschriebenen quellcode ankommt. schließlich lese ich, wenn ich wissen will, was ein programm macht den quellcode und nicht die binary. ------------------ mfg maddin Zitieren
gajUli Geschrieben 14. November 2000 Geschrieben 14. November 2000 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von maddin: was ich dir damit bloß sagen wollte ist, dass es trotz gut optimierten code auch auf einen verständlich geschriebenen quellcode ankommt. schließlich lese ich, wenn ich wissen will, was ein programm macht den quellcode und nicht die binary. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.