#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 кодировку формата файла с исходным кодом (поскольку это виндовс)
Комментариев нет:
Отправить комментарий