Top.Mail.Ru
Ответы

Нет кириллицы в C++

Доброго вечера, в C++ подключил
setlocale(LC_ALL, "RU") - пробывал разные варианты.
Но ничего не помогло, в консоле вместо русских символов какие непонятные знаки. Помогите пожалуйста

По дате
По Рейтингу
Аватар пользователя
Высший разум
1мес

Какая система? Какая локаль? Какая среда разработки?

1234567891011121314151617181920212223242526
 #include <iostream> 
#include <string>

using namespace std;

const auto init = []() { 
    wcout.imbue(locale(".OCP")); 
    wcerr.imbue(locale(".OCP")); 
    wclog.imbue(locale(".OCP")); 
    wcin.imbue(locale(".OCP")); 
    return 'c'; 
}(); 
 
int main() { 
    constexpr size_t length{ 0xFF }; 
    wchar_t buffer[length]{}; 
    wcout << L"Введите текст на русском языке: "; 
    wcin.getline(buffer, length); 
    wcout << L"Вы ввели: " << buffer << L'\n'; 
    wstring prompt{ L"Введите текст на русском языке: " }; 
    wstring line; 
    wcout << prompt; 
    getline(wcin, line); 
    prompt = L"Вы ввели: "; 
    wcout << prompt << line << L'\n'; 
} 
Аватар пользователя
Профи
1мес

Попробуйте сделать к примеру так:

123456
 #include <stdlib.h>

int main() {
    system("chcp 1251 > nul");
    std::cout << "Текст на русском" << std::endl;
} 
Аватар пользователя
Мастер
1мес

Убедись, что файл сохранён в UTF-8, консоль настроена на UTF-8 (chcp 65001), используй L и wcout, и вызывай setlocale до вывода.

Аватар пользователя
Мудрец
1мес

Сейчас гляну

1234567891011
 #include <iostream> 
#include <clocale> 
 
using namespace std; 
 
int main() 
{ 
    setlocale(LC_ALL, "ru"); 
    cout << "РУССКИЙ" << endl; 
    return 0; 
}