как вернуться к какой-либо позиции, уже напечатанной на C?
Вопрос
представим себе ситуацию, в которой следующая программа печатает около 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' для возврата на задний план