Символы перекрываются, когда они изменили цвет и печатаются задом наперед

enter image description here

Как вы можете видеть, верхние темные крестики обрезаются, хотя для них есть место.

Это происходит потому, что они изменили цвет и печатаются задом наперед (справа налево).

Это ошибка, неправильный код, плохая настройка моей системы или (я сомневаюсь) так и должно быть?

Вот код, который генерирует этот вывод:

#include <Windows.h>
#include <iostream>
void moveTo(int x,int y){
    COORD kord={x,y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kord);
}
void setColor(WORD attributes){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), attributes);
}

void main(){
    for(int i=9;i+1;i--)
    {
        moveTo(i,0);
        std::cout.put('X');
    }
    for(int i=-10;i;i++)
    {
        moveTo(i+10,1);
        std::cout.put('X');
    }
    setColor(8);
    for(int i=9;i+1;i--)
    {
        moveTo(i,2);
        std::cout.put('X');
    }
    for(int i=-10;i;i++)
    {
        moveTo(i+10,3);
        std::cout.put('X');
    }
    setColor(7);
    for(int i=9;i+1;i--)
    {
        moveTo(i,4);
        std::cout.put('X');
    }
    for(int i=-10;i;i++)
    {
        moveTo(i+10,5);
        std::cout.put('X');
    }
    std::cin.get();
}
7
задан Jonathan Leffler 22 March 2012 в 01:55
поделиться