Изначально файл программы набирался в Notepad++(по умолчанию utf-8). Много разрозненного русского текста. При работе через MINGW64 русский выводился без проблем. При использовании файлов в Visual Studio 2017 вылезли непонятные символы.
#include <Windows.h>
SetConsoleOutputCP(CP_1251);
меняет тип кодировки, но кракозябры не исчезают...
#include <clocale>
setlocale(LC_CTYPE, "rus");
ничего не поменял.
Кусочек кода из программы:
cout << "Укажите количество датчиков для внесения в базу данных, " <<
"либо 0 для выхода.\n";
Как исправить ситуацию, не переписывая русский текст?
class MBuf : public std::stringbuf { public: int sync() { fputs(str().c_str(), stdout); str(""); return 0; } };
int main (int argc, char* argv[]) { SetConsoleOutputCP(CP_UTF8); setvbuf(stdout, nullptr, _IONBF, 0); MBuf buf; std::cout.rdbuf(&buf); std::cout << u8"Greek: αβγδ\n" << std::flush; Этот код сработал!!
– Jane_Brown Mar 21 '19 at 19:10