Итак, у меня есть класс C ++, который представляет прямоугольники, я использую функцию WriteConsoleOutputCharacter
, которая выводит быстрее, чем cout
или printf()
, я уже создал программу, которая печатает прямоугольник, но у меня возникли проблемыочистка прямоугольника.
Насколько я понимаю из msdn, эта функция может печатать символы Unicode или 8-разрядные символы из текущей кодовой страницы консоли.Во всяком случае, когда я хотел напечатать backspace, чтобы очистить прямоугольник, он не работал, и он печатает что-то еще (◘).Когда я попытался напечатать backspace через его шестнадцатеричный код (0x008), он снова напечатал символ.
Код довольно прост:
const char clr[] ="\b";//Thar the array I'm printing
void rect_m::clr_ar()
{
Ex = Vx + Lx;//These variables are the rectangle's sizes
Ey = Vy + Ly;
HANDLE mout = GetStdHandle(STD_OUTPUT_HANDLE);
//The loops cover the rectangle area
for (SHORT i = Vy; i < Ey; i++)
{
for (SHORT j = Vx; j < Ex; j++)
{
WriteConsoleOutputCharacter(mout, clr, strlen(clr), { j,i }, &dwWritten);
}
}
}
Ну, все, что мне нужно, это способ печати backspace с функцией WriteConsoleOutputCharacter
, чтобы очистить текст (а не печатать пробелы надЭто).Я знаю, что это очень простая ошибка, и есть лучший способ.Так, может кто-нибудь сказать мне, пожалуйста, что не так с моим кодом?