puritanMedlem sedan maj 200569 inlägg
Till den som vet...
Kör Slackware och gcc kompilatorn och vill kunna läsa in från tangenterna för att kunna köra en robot.
koden som jag verkligen ansåg skulle funka är följande
char c;
while(1)
{
c = getchar();
sen en switchsats
där cases styr funktionsanropen till roboten
default stannar roboten
}
Prolbemet ligger i getchar() för den tar inte in från tangenterna enbart utan echo:ar och kräver sen ett radavslut för att exekveras, naturligtvis kan man "fulkoda" och sätta ett radavslut men det innebär att jag inte kan hålla inne tangenten för att köra roboten framåt.
Någon som har några förslag eller behöver mer info, bara ropa till...
MvH
Puritan
GunnarDMedlem sedan juni 20014 250 inlägg
Tänk på att getchar() inte returnerar en char utan en int.
Eller som det står i man sidan för getchar()
man getchar skrev:
int getchar(void);
getchar() is equivalent to getc(stdin).
fgetc() reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end of file or error.
puritanMedlem sedan maj 200569 inlägg
Men det är inte problemet, problemet är att den egentligen inte lyssnar på tangentbordet, dvs den väntar på enter, vilken den inte borde göra, har implementerat en funktion utan buffring men det hjälper inte.
Kanske måste jag härka mig in i nån form av listener men som sagt lite utanför min kunskapscirkel.
Ngn annan som har förslag?
MvH
Puritan
lunaMedlem sedan juli 2004159 inlägg
en lösning är att du använder dig av ncurses, då kan du även få mer terminal-liknande utskrifter.
http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
puritanMedlem sedan maj 200569 inlägg
Hej!
Tackar för det snabba svaret, jag har nu försökt använda ncurses men har ett konstigt problem,
ncurses.h existerar och includeras utan problem, men ingen av functionerna däri tillåts vid kompilering...
Ngra nya förslag?
Mvh
Puritan
puritanMedlem sedan maj 200569 inlägg
Problemet löst, ni kan låsa denna tråd.
Mvh
Puritan
lunaMedlem sedan juli 2004159 inlägg
Bra att det löste sig.
(Ncurses kan ibland lösa många små roliga problem man ställs inför.)
Du får nog ta och stänga tråden själv... (Acceptera svar)