10. juni 2003 - 22:26
Der er
12 kommentarer og 2 løsninger
input mens en while løkke kører?
Hey E! Jeg har et server program kørernde på min UNIX spand! Nu vil jeg så gerne lave så man kan give den input fra selve programmet! dvs: while(1) { //lav det den skal her.. } og imens lytte efter input fra programmet.. ved ikke om det kan lade sig gøre..
Annonceindlæg fra Conscia
Du spørger efter kbhit & getch på Unix ?
Det jeg spørger efter er hvor jeg skal placere det i forhold til min while løkke.. ?
Placeringen er ikke noget problem: while(1) { // gør noget if(kbhit()) { char c = getch(); // process c } // gør noget }
/tmp/ccmIN1bj.o: In function `main': /tmp/ccmIN1bj.o(.text+0xd): undefined reference to `kbhit' /tmp/ccmIN1bj.o(.text+0x18): undefined reference to `getch'
Du skal have fat i en kbhit til Linux ! Se f.eks. mit andet link for kode.
nu spørger jeg måske dumt, men hvordan linker jeg den fil sammen med mit projekt? -bash-2.05b$ cc -o test -lm -lz test.c -lkbhit /usr/libexec/elf/ld: cannot find -lkbhit -bash-2.05b$ har compilet kbhit!
cc -c -lm -lz test.c -o test.o cc -c -lm -lz kbhit.c -o kbhit.o cc -lm -lz test.o kbhit.o -o test
10. juni 2003 - 22:55
#10
-c betyder compile only og jeg bruger altid cc til at linke med (ld er ikke til at finde ud af) PS: du har husket at slette main fra den Ålborg kode ?
10. juni 2003 - 22:56
#11
NB: jeg går i seng nu. Jeg ligger et svar så du kan give mig nogle point, hvis det kommer til at virke som du vil have det til.
12. juni 2003 - 11:33
#12
Nu har jeg prøvet mig lidt frem.. ----- #include <stdio.h> #include <stdlib.h> #include <string.h> #include <termios.h> #include <unistd.h> #include <errno.h> unsigned char kb_getc(void) { unsigned char ch; ssize_t size; size = read (0, &ch, 1); if (size == 0) { return 0; } else { return ch; } } int main() { unsigned char ch; while(1) { if(kb_getc()) { ch = kb_getc(); printf("%c\n", ch); } } return 1; } ----- -bash-2.05b$ cc -o test test.c -bash-2.05b$ ./test hejsa <-- input e s [2 linebreaks] havde godt nok forventet at få samme output som input?
12. juni 2003 - 12:11
#13
Din første kb_getc spiser hver anden char. while(1) { if(ch = kb_getc()) { printf("%c\n", ch); } }
12. juni 2003 - 12:52
#14
jeg takker for alt jeres hjælp! :) 20 til arne_v og 10 til segmose :)
Kurser inden for grundlæggende programmering