как вернуться к какой-либо позиции, уже напечатанной на C?

StackOverflow https://stackoverflow.com/questions/264358

  •  06-07-2019
  •  | 
  •  

Вопрос

представим себе ситуацию, в которой следующая программа печатает около 10 строк #

for(i=0;i<10;i++)
prinf("\n#");

теперь как вернуться к 5-й строке и отредактировать этот # и изменить его цвет, не очищая экран и не очищая нижеприведенные 5 строк?

Я пытался

window(5,0,20,20);
textcolor(GREEN);
cprintf("#");

но это не редактирование, а печать на стороне оригинала. почему?

есть ли какой-нибудь другой способ сделать это и динамически изменить цвет уже напечатанного текста?пожалуйста, помогите me..my среда - turbo c в Windows

Это было полезно?

Решение

Функция окна

обычно создает окно из первого пикселя с двумя координатами, т.е. в вашем примере (5,0), до пикселя, на который указывают следующие 2 координаты. поэтому ваша программа должна работать

попробовать или использовать gotoxy ()

Другие советы

Похоже, вы смешиваете printf и другую библиотеку вывода - это не рекомендуется.Printf ожидает отправки на символьный терминал, в то время как рассматриваемая библиотека вывода может ошибочно предполагать, что у нее есть эксклюзивный доступ (и может вести себя неправильно).

Основываясь на одной функции, вы, скорее всего, используете conio.h.Документацию можно найти здесь, с оглавлением, показывающим каждую доступную функцию.По этому индексу вы должны быть в состоянии мгновенно определить нужную функцию.

Функция window не делает того, что вы хотите, поскольку она устанавливает только область, в которой курсор может изменять текст - она не перемещает курсор, вам нужно использовать другие библиотечные функции.

-1: Несколько советов для размещения вопросов с домашними заданиями:

1) Правильно сформулируйте вопрос! Размещенный код не работает, как указано в описании:

 for(i=0;i<10;i++)
    prinf("#");

Это напечатает 10 # символов в одной строке, так как нет символа конца строки. Исходное описание говорит о «печати 10 строк».

2) Укажите необходимые подробности. Какую среду вы используете: Windows? Linux? Какой компилятор? Это оконная или текстовая среда?

3) STFW перед публикацией. Ищите «последовательности выхода ANSI» или «позиционирование курсора».

возможно-

cprintf("\b#");

'b' для возврата на задний план

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top