Непонятный момент при выводе в консоль

287
30 января 2018, 10:39

Здравствуйте, задаю фиксированный размер консоли с помощью

system("mode con cols=80 lines=40");

затем вывожу поочередно символы в консоль, так вот, если нарисовать символ в позиции курсора [40][80], после этого он создает еще новую строчку, в связи с чем первая строчка удаляется. Вот код приложения:

#include <iostream>
#include <windows.h>
int main()
{
    int kRows = 40;
    int kColumns = 80;
    unsigned char symbol = 0;
    const unsigned char horizontal = 205;
    const unsigned char vertical = 186;
    const unsigned char corner_UpLeft = 201;
    const unsigned char corner_UpRight = 187;
    const unsigned char corner_DownLeft = 200;
    const unsigned char corner_DownRight = 188;

    HANDLE consoleHandle;
    COORD cursorCoord;
    SetConsoleCursorPosition(consoleHandle, cursorCoord);
    system("mode con cols=80 lines=40"); // Размер консоли
    for(int r = 0; r < kRows; r++)
    {
        for(int c = 0; c < kColumns; c++)
        {
            if((r == 0) && (c == 0))
                symbol = corner_UpLeft;
            else if((r == kRows - 1) && (c == 0))
                symbol = corner_DownLeft;
            else if((r == 0) && (c == kColumns - 1))
                symbol = corner_UpRight;
            else if((r == kRows - 1) && (c == kColumns - 1))
                symbol = corner_DownRight;
            else if((r == 0) || (r == kRows - 1))
                symbol = horizontal;
            else if((c == 0) || (c == kColumns - 1))
                symbol = vertical;
            else
                symbol = 0;

            cursorCoord.X = c;
            cursorCoord.Y = r;
            SetConsoleCursorPosition(consoleHandle, cursorCoord);
            std::cout << symbol;
        }
    }
    return 0;
}

Мне в консоли нужно вывести эту рамку, вопрос как не добавлять эту строчку? Или можно как то по другому справиться?

READ ALSO
Событие закрытия окна wxwidgets

Событие закрытия окна wxwidgets

как отследить закрытие окна Form в Win

209
Помощь с рекурсией

Помощь с рекурсией

Как запустить данную рекурсию? нужно найтиПремного благодарен!

215
Чтение массива из файла в таблицу с++

Чтение массива из файла в таблицу с++

Из файла нужно считать массив в таблицу, а затем производить манипуляции с этой таблицей:

274