ra
Высший разум
(113320)
12 лет назад
GCC для винды не поддерживает установку русской локали (функция setlocale), а SetConsoleOutputCP будет работать, если для консольного окна установишь шрифт TrueType. Попробуй конвертировать:
#include <windows.h>
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
string ru(const char *s) {
char *b = new char[strlen(s)];
CharToOem(s, b);
string r(b);
delete[] b;
return r;
}
string ru(string &s) { return ru(s.c_str()); }
int main() {
string s = "русский текст в консоли (string)\n";
cout << ru(s);
cout << ru("русский текст в консоли (char [])\n");
return 0;
}
ЗЫ:
Лучше не парься и сохраняй в кодировке cp866, или вообще выводи сообщения на английском.
МихаилМыслитель (6714)
12 лет назад
сохранил в кодировке виндовс-1251 работает, а кодировка 866 не нашел такой. только 936
Ярослав Паюсов
Мастер
(1815)
7 лет назад
Для Clion:
Cygwin - при установке в выборе пакетов нужно найти и отметить всякие cmake, GDB и прочие, кем-нибудь рекомендуемые к установке.
Сlion - File - Settings - Editor - File Encodings: IDE Encoding, Project Encoding, main.cpp (Ваш исполняемый файл) - UTF-8,
Default encoding for properties files - IBM866
В окне редактора внизу - UTF-8.
#include
SetConsoleCP(866); SetConsoleOutputCP(866);
если внимательно посмотрите то увидите что в консоле первая строчка совсем по русски не отображаетсЯ.
и еще обратите внимание, я перебробовал три разных способа подключения русского кода, часть из них под уже коментарии записана.
сам код блокс (в нем пишу я) сохраняет файл в виндовс-1251 кодировке.
что делать не знаю