2016-01-12 4 views
1

je dois obtenir mon (Y, X) position de mon curseur de terminal avec les termcaps en C.termcaps: obtenir la position du curseur

Avec ioctl() je reçois la taille de l'écran de mon terminal, mais je toujours besoin d'obtenir où est mon curseur.

Je trouve ceci:

CSI 6 n DSR - Rapport sur l'état du périphérique indique la position du curseur à l'application que (comme si tapés au clavier) ESC [n; mR, où n est la row et m est la colonne. (Ne fonctionne pas sur MS-DOS.)

Mais je ne sais pas comment l'utiliser en C ...

+0

Jetez un coup d'oeil [ICI] (https://fr.wikipedia.org/wiki/ANSI_escape_code) – LPs

Répondre

2

Vous écrivez la séquence de commande (<ESC>[6n) à la borne en utilisant la sortie normale à stdout . Ensuite, vous lisez la réponse en utilisant l'entrée normale de stdin.

Vous devez analyser la "réponse" pour choisir la position.

-2

est une fonction gotoxy() ici, qui peut imprimer sur indiqué x et y position dans linux gcc

#include<stdio.h> 
//gotoxy function 
void gotoxy(int x,int y) 
{ 
printf("%c[%d;%df",0x1B,y,x); 
} 
main() 
{ 
gotoxy(25,50); //reposition cursor 
printf("hello world"); //display text 
} 

est une référence ici pour l'entrée de la console et la sortie, si vous utilisez terminal pour Windows (invite de DOS)

+0

-1 Il veut obtenir l'emplacement du curseur, ne pas définir le locat Je vous conseille de modifier cela afin que les autres ne soient pas rabaissés. –