Sonderzeichen in C++ verwenden...

Hallo!
Wie kann man Sonderzeichen(F1, Pfeiltasten,usw...) in ein C++ Prog. einbauen?.
Ich hab zwar eine Beschreibung wie man das mit getch() verwirklicht, würde aber gerne ander Funktionen dazu benutzen(programmiere unter linux).
 
Also ich programmiere nicht unter Linux aber da gibt es doch sicherlichauch API ... LinuxAPI ? :) :) :) naja und wenn das ähnlich wie WinAPI ist dann kannst du mit WM_BUTTONDOWN (oder so ähnlich bin zu faul zum nachgucken) und eingien andere Fuktionien abfangen wann die Taste runtergedrückt wird und dann eine Aktion drauf ansetzen. Dazu brauchst du aber soweit ich weiss auf jeden Fall eine ASCII-Tabelle ... die liegt auf irgendeinen Computer von mir ich werd sie mal suchen und wenns nicht schon jemand vor mir gemacht hat auch posten.

PS: Es gibt auch noch andere Methoden aber ich hab es bis jetzt immer so gemacht.
PPS: Bin Windows Programmierer :)
 
Warum sollte das nicht nötig sein ?

Gibts hier schon eine im Forum ?
Soll er bei ner Suchmaschine suchen ?
Meinst du er hat eine ?

*gg* Nee hab schon verstanden.

Achja falls du keine hast dann: www.google.de oder www.quellcodes.de

(ich hoffe das ist nicht schlimm das ich hier die beiden URL's poste ! Wenn doch sorry)
 
:)
ich will mich ja nich als groszer aufpasser aufspielen, ich mein ja nur ... ne scii tabelle hamm eignetli´ch die meisten leute, und ansonsten ist sie ziemlich leicht zu finden, oder selber zu erstellen .. :)
aber wieder zurueck zum thema ...
 
Ich hab eine ASCII-Tab selber erstellt und eine aus einem Buch!
Aber eine Strg-Taste oder F1-Taste konnte ich leider noch nicht finden.
LinuxApi???*g
Ich kenn unter VC++ die Viritual-KeyCodes(VK_CONTROL = strg,usw.) aber die helfen mir auch nicht weiter.
 
die sonderzeichen haben (zumindest unter win zwei tasten 0 und noch eine afaik)
schreib dir doch einfach ein kleines programm, das dir den zahlenwert eienr taste ausgibt, sobald du die taste drueckst ...
 
dass liegt IMO daran, dass die Codes für dei erweiterten tasten aus zwei zeichen zusammengesetzt sind, aber nur eines gelesen wird.
versuch doch mal, einfach zweimal die taste ainzulesen, wenn der erste wert 0 ist.
 
stimmt blueflash, lass einfach zweimal eine taste lesen ... bzw nimm eine schleife, die erst mei einer bestimmten taste abbricht
 
Also ich weiss das ich unter Turbo Pascal mal mit den Pfeiltasten gearbeitet habe..... (auch mit nem ASCII Code)

und ich erinnere mich schwach, dass man in good old MS-DOS immer ein ^M oder ein ^D oder so erhielt,wenn man draufgedrückt hat .....also wird es wohl einen Ascii Code dazu geben ...

Ich werde mal kramen, ob ich das Proggi noch irgendwo finde (war eine meiner ersten verketteten Listen ;) ;) :D :D )

CU

Watch
 
Asker..wofuer Du da eine ASCII TAbelle brauchst ist mir schleierhaft...

Peace Treaty..solche Tasten musst Du ueber die
scancodes abfangen, die von der TAstatur an den zustaendigen Controller

Hier mal ein paar links, wo es sich um dieses Thema dreht..ansonsten google.de/linux..:)

Wenns KDE sein soll ...http://lists.suse.com/archive/suse-linux/2002-Jan/0196.html

http://lists.suse.com/archive/suse-linux/1998-Aug/date.html
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-4.html
http://www.leb.net/blinux/list-archive/blinux-list/2001/msg00048.html

http://www.asahi-net.or.jp/~bg3k-ysd/pocketlinux/src/keycode.txt
hier ein paar scancodes

und das hier kann evtl wirklich hilfreich sein :
http://filibusta.crema.unimi.it/linux/lkmpg/node21.html

Wenn Du eine Loesung gefunden hast, dann poste sie doch mal...wuerd mich interessieren :)

:wq!
 
Also...will man die Pfeiltasten in ein C++ Prog einbauen kann man das mit:

int c, i;

for ( i = 0; i !=3; i++)
{
c = getchar();
}
printf("Ihr Zeichen war: %d\n",c);


Aber Tasten wie zB F1, Esc, oder Strg funktionieren mit dieser Methode nicht!
Hab bereits im Netz nach Scancode-lösungen gesucht und fand nur Assembler-Code (und diese Sprache beherrsch ich absolut üüüberhaupt nicht). Ich denke mit diesem Code würde es aber funktionieren wenn man ihn in ein C++-Prog einbaut.
 
Um nochmal zum Ausgang dieses Threads zu kommen...
Fuer C++ hab ich keine Loesung..wohl aber fuer C
Allerdings unter Linux...

#include <curses.h> // dafuer musst Du curses bzew ncurses installiert
// haben

int main()
{
int zeichen,weiter;
weiter = 1;
initscr();
keypad(stdscr,1); // ausschalten der aut. Steuerzeichenerkennung..
cbreak();
noecho();
while(weiter){
clear();
printw("Eine Funktionstaste oder Pfeilfaste druecken\n");
printf("##########################################\n");
zeichen=getch();
switch(zeichen)
{
case KEY_UP: printf("Pfeil-nach-oben\n"); break;
// So kannst Du ach die anderen Pfeiltasten einbauen ...KEY_DOWN
//KEY_LEFT, KEY_RIGHT

//Hier die F-TAsten...
case KEY_F(1): printw("\nF1 Taste gedrueckt");break;

default: printw("\nTaste nicht belegt....\n");
} // fuer switch
refresh();
if(weiter){
printw("\nweiter mit blablablabla...(TAste)\n");
getch();
}
} // fuer while
endwin();
exit(0);
}

Unter Linux, wenn Du gcc verwendest musst Du so compilieren ::

gcc -Wall code.c -o code -lcurses

also..so kannst Du zumindest die F- TAsten verwenden..
weitere Infos findest Du in der Manpage zu ncurses (man ncurses)
Oder schau Dir die header (curses.h) mal genauer an...

Also..have phun :))

:wq!
 
Zurück
Oben