Спасибо, что уделили мне время. Это работает сейчас, и спасибо за ссылки, которые вы мне дали, очень интересно.
ел бы знать, как получить положение курсора (x, y) в моей программе, не записывая ничего на экране и не отслеживая его все время.
Я нашел способ получить свою позицию с помощью этой функции (здесь я не проверяю возврат read, write и т. Д., Чтобы написать меньший код по этому вопросу, но я делаю это в своей программе):
void get_cursor_position(int *col, int *rows)
{
int a = 0;
int i = 0;
char buf[4]
write(1, "\033[6n", 4); // string asking for the cursor position
read(1, buf, 4);
while (buf[i])
{
if (buf[i] >= 48 && buf[i] <= 57)
{
if (a == 0)
*rows = atoi(&buf[i]) - 1;
else
*col = atoi(&(buf[i]) - 1;
a++;
}
i++;
}
}
Эта функция дает мне точное положение курсора (* row = y, * col = x), но она пишет на экране
Как я могу получить положение курсора, не записывая ничего на экране? (потому что, если курсор находится на одном из напечатанных символов, он будет перезаписан).
Это школьный проект, поэтому я могу использовать только termcap, я не могу использовать функции ncurses, разрешены только функции tputs, tgoto, tgetstr, tgetnum, tgetflag.