Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Escape-Taste unter C abfragen

Empfohlene Antworten

Wie kann ich unter C die Escape abfragen?

Mit getchar() kann ich irgendwelche Tastatureingaben abfragen blos Escape eben nicht!

cu

Mohamet

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

@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

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?????

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


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.]

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. wink.gif

Uli

------------------

Uli's Prüfungspages ... die Seite mit den Prüfungshinweisen

<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. wink.gif

Uli

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Webentwickler:

Ahoi Uli,

echt?! biggrin.gif Ist ja cool! Und das mit Null Ahnung von C. Vielleicht wird doch noch einmal ein C-Programmierer aus mir *grins*.

<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. wink.gif

Uli

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

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

<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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.