Спасибо, что уделили мне время. Это работает сейчас, и спасибо за ссылки, которые вы мне дали, очень интересно.

ел бы знать, как получить положение курсора (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.

Ответы на вопрос(1)

Ваш ответ на вопрос