mikrocontroller.net

Forum: PC-Programmierung c getchar ohne zwangseingabe


Autor: Martias Klein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich schlage mich grade mit ncurses herum.

Und such vergeblich um eine Möglichkeit,
gedrückte tasten aus dem Eingabe buffer auszulesen ohne,
das das Program eine Eingabe bekommt.
Es soll also auch weiterlaufen und nicht auf die Eingabe des users 
warten,
sondern nur, den scancode zurück geben, wenn eine Taste gedrückt wurde.


Dank schon jetzt.

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ikarus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martias Klein schrieb:
> Und such vergeblich um eine Möglichkeit,
> gedrückte tasten aus dem Eingabe buffer auszulesen ohne,
> das das Program eine Eingabe bekommt.
> Es soll also auch weiterlaufen und nicht auf die Eingabe des users
> warten,
> sondern nur, den scancode zurück geben, wenn eine Taste gedrückt wurde.
Betriebssystem?
Ansonsten, für Linux, würde ich nicht-blockierendes Lesen mit read() 
vorschlagen. Geht vielleicht auch für Windows...
Du bekommst einen Char, dass mit den Scancodes läuft glaube ich anders. 
(Keine Ahnung wie, vermutlich müsstest du für den Scancode dann direkt 
an den Tastatur-Treiber ran??? Oder ich verstehe dich falsch. ;-))

http://pronix.linuxdelta.de/C/Linuxprogrammierung/...

Autor: ikarus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, select() könntest du auch nehmen...

Autor: Martias Klein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder termcap, termios oder termio, um das Terminal auf nicht-kanonischen 
Modus umzustellen.

Autor: Hermann-Josef M. (hermann-josef)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martias,

anbei zwei Funktionen für Linux, so wie Sven P. es vorschlägt.

gl
Hermann-Josef

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.