После вывода символа подчеркивания и использования endl cout больше не печатает символы - PullRequest
0 голосов
/ 24 февраля 2019

Я не понимаю, почему "a" не печатается при выполнении следующего кода:

#include <iostream>
#include <windows.h>

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    setvbuf(stdout, nullptr, _IOFBF, 100);
    std::cout << "‾";
    std::cout << std::endl;
    std::cout << "a";
    return 0;
}

Примечание: Я изменил шрифт в консоли Windows на "«Консолас» для правильного отображения символа подчеркивания.Моя версия Windows - Windows 7 Enterprise (Service Pack 1).

Я подумал, что поведение должно быть таким же, как в следующем коде, который правильно печатает «a»:

#include <iostream>
#include <windows.h>

int main()
{
    SetConsoleOutputCP(CP_UTF8);
    setvbuf(stdout, nullptr, _IOFBF, 100);
    std::cout << "‾\n";
    fflush(stdout);
    std::cout << "a";
    return 0;
}

Выводы, которые я получаю, соответственно:

enter image description here enter image description here

Командная строка того, как мой первый пример компилируется в коде:: Блоки 16.01:

enter image description here

...