У меня проблемы с эмулятором терминала, над которым я работаю, и мне удалось сузить проблему до странного поведения курсора в консоли Windows.В обычном cmd, когда вы пишете символ точно в конец строки, курсор переходит на следующую строку.(См. Рисунок ниже)
Когда я пытаюсь добиться того же с помощью printf в программе, которую я пишу, курсор остается на том же символе.(См. Рисунок ниже)
Мне удалось добиться "cmd-like" результата, напечатав хакерский " \b"
, но я пытаюсь найти лучший способ сделать это (т.е.первый символ в следующей строке может быть значимым, и я не хочу его стирать. Чтение этого символа, конечно, не будет элегантным).
Я ищу способ сделать это автоматически.Может быть, какая-то конфигурация консоли?Кто-нибудь здесь знает, как это сделать?
Пример кода (при условии, что консоль имеет размер по умолчанию 80):
int main() {
printf("12345678901234567890123456789012345678901234567890123456789012345678901234567890");
fflush(stdout);
getc();
return 0;
}
Если вы запустите этот код, после печати, курсор останется на символе 0 в конце строки.Мой вопрос заключается в том, как сделать так, чтобы курсор появился в начале следующей строки, не меняя жестко закодированную строку.