Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Ввод/вывод кириллицы в консоли Windows

#cpp #windows #кодировка


Работал на Linux, проблем с кодировками не было вовсе. Нужно было теперь работать
на Windows. 

Всё вроде хорошо, но не было русских символов, одни кракозябры. Менялись на другие при:

SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");


Копался в реестре, менял шрифт консоли, в общем всё что есть адекватное в Google.
После я решил случайно изменить SetConsoleCP(1251); на SetConsoleCP(CP_UTF8);(конечно
и SetConsoleOutputCP(CP_UTF8);). 

Радости было много, родной язык в консоли. Но прошло пару дней и теперь надо вводить
ещё русский, но программа сразу ложится. Судя по отладчику строка поступает просто пустая. 

Как можно исправить это?
    


Ответы

Ответ 1



Проверьте кодировку компилируемых файлов *.cpp, они должны быть в той кодировке в которой вы выводите текст.

Ответ 2



Думаю можно ответить только кодом: #include "stdafx.h" #include #include using namespace std; int main(int argc, char* argv[]) { SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода char string[20]; cin >> string; // вводим строку, используя Кириллицу cout << "\nвывод: "<< string << endl; // ввывод строки system("pause"); return 0; } ссылка на источник Ну и советую в настройках консоли поменять шрифт на luicida console плюс использовать cp1251 кодировку формата файла с исходным кодом (поскольку это виндовс)

Комментариев нет:

Отправить комментарий