09. februar 2004 - 12:58
Der er
17 kommentarer og 1 løsning
Flytte cursoren i et konsolprogram - Linux
Hejsa
Jeg vil høre hvordan man flytter cursoren i Linux, uden at gøre brug af windows.h. Se evt. spm.
http://www.eksperten.dk/spm/462193
Annonceindlæg fra COMM2IG
09. februar 2004 - 13:49
#1
Bruger du curses ? I så fald mener jeg at der er kald hvor man angiver X,Y koordinater. Hvis du selv vil gøre det direkte, så kan du positionere dig i et VT vindue med: <ESC>[x;yH Eller mere C'sk: printf("%c[%d;%dH",0x1B,x,y);
09. februar 2004 - 22:18
#2
Jeg tænker måske på, om der var en tilsvarende mulighed, som windows.h giver - COORD i Linux.
09. februar 2004 - 22:24
#4
Jeg kender kun 2 oplagte muligheder: 1) curses 2) escape sekvenser
09. februar 2004 - 22:26
#5
Jeg suppelere igen... Opgaven er, at placere til et X,Y koordinat på skærmen. Dette skal skal med standard bilotekerne i Linux - C.
09. februar 2004 - 22:30
#6
Hvis standard bibliotekerne udelukker curses, så er det kun escape sekvenser tilbage. Så prøv det.
09. februar 2004 - 23:14
#7
Jeg har lavet billen i en ncurses udgave. Jeg har ikke linux, men har testet den med cygwin (en gcc til windows), jeg vil tro at det vil virke på linux. Jeg har kompileret med denne kommando linie: gcc bille.c -W -Wall -lncurses -o bille.exe På linux skal du ikke bruge "-o bille.exe". #include <curses.h> #include <stdio.h> #include <sys\unistd.h> const char *const ben[] = { " )))", " |||", " (((", " |||" }; int main(void) { int i; initscr(); cbreak(); noecho(); intrflush(stdscr, FALSE); for(i = 0; i < 3; i++) { move(i, 0); refresh(); printw(" "); fflush(stdout); } for(i = 0; i < 40; i++) { move(0, i); printw(ben[i%4]); refresh(); move(1, i); printw(" -OOOO:"); refresh(); move(2, i); printw(ben[i%4]); refresh(); usleep(300000); } return 0; }
09. februar 2004 - 23:18
#8
Hej Bertelbrander. curses.h, kan jeg ikke finde i C på Linux
09. februar 2004 - 23:21
#9
Jeg har både: /usr/include/ncurses/curses.h /usr/include/curses.h
09. februar 2004 - 23:29
#10
Du skal måske bruge ncurses.h (på cygwin er curses.h det samme som ncurses.h (en link)).
10. februar 2004 - 00:00
#11
Hej Arne. jeg fik løst det med printf("%c[%d;%dH",0x1B,x,y);. Så jeg siger tak for hjælpen!
10. februar 2004 - 03:25
#12
Så vil jeg ligge et svar
06. marts 2004 - 15:47
#13
Lukke tid ?
09. august 2004 - 19:30
#14
Tør man spørge om hvorfor du afviser mit svar når du skriver at du har brugt min løsning ?
09. august 2004 - 20:37
#15
Hej Arne. Jeg er ikke så skarp til det med point...Beklager. Jeg kan dog se at spørgsmålet stadig er åbent her:
http://www.eksperten.dk/spm/462193 Så hvis du svarer, kan jeg give point. Du skal have tak for hjælpen og tålmodigheden...mvh Jesper
09. august 2004 - 21:11
#16
Det spørgsmål er: - oprettet af en anden bruger - ser ud til at være på Windows platform - er på andet antal point
09. august 2004 - 21:14
#17
Hvis det er en fejl du selv tog point, så kan du oprette et nyt spørgsmål
i samme kategori (C/C++) med titel "Point til arne_v" 60 point og i
spørgsmålets tekst link til dette spørgsmål.
Jævnfør f.eks.
http://expfaq.1go.dk/?id=30#giv_flere_point
Kurser inden for grundlæggende programmering