0

Пробовал читать с файла русские буквы. Вот в чем дело. Когда программа считывает файлы то, через debug можно заметить что слово с файла он смог увидеть введите сюда описание изображения

Но когда, я пытаюсь вывести в консоль то выходит проблема в виде непонятных символов введите сюда описание изображения

Кодировка консоли стоит 1251. Если писать строки или символы на русском в консоль и их вывести то все ок.

введите сюда описание изображения

Я пробовал менять чтение файла на wifstream, это не помогло. Так же кодировка самого файла UTF-8, я пытался сменить ее на ANSI, но Windows возвращал обратно UTF-8. Может кто подсказать, как прочитать файл с русскими символами? Еще пробовал wchar_t, но там была ошибка: Неопознанные символы.

Вот код:

setlocale(LC_ALL, "rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
char text[50];
string a;
ifstream file("text.txt");
if (!file.is_open())
    cout << "Error: File is not found!!!" << endl;
else
{
    file >> text;
    cout << text << endl;

    cin >> a;
    cout << a;
}
return 0;

P.S. хватит ставить мне ссылку на этот вопрос и закрывать мой вопрос. Я пробовал делать то что там написано. Не помогло никак. Да и вопросы отличаются. Я про эту ссылку https://ru.stackoverflow.com/questions/459154/Русский-язык-в-консоли Еще раз, она мне не помогла. Тут совсем другой вопрос.

  • Ну первая строка у Вас явно utf-8 кодировка, а две других cp1251 – Виктор Dec 15 '22 at 11:51
  • А как вы пытались сменить кодировку файла? – needKVAS Dec 15 '22 at 11:52
  • setlocale(LC_ALL, "rus"); SetConsoleCP(1251); SetConsoleOutputCP(1251); - не делайте так – user7860670 Dec 15 '22 at 11:57
  • @needKVAS Первый способ сохранить как в блокнот. Не сработало. Использовал Notepad++ и там пытался перекодировать, то же не вышло. – kanejons2 Dec 15 '22 at 14:28
  • @user7860670 я понимаю, но без них были бы такие же символы. как первая строка с файла. – kanejons2 Dec 15 '22 at 14:29
  • @Виктор ну как бы да. Я же и хочу чтобы и верхняя была в той кодировке. Дело в том, что в файл стоит в utf-8 и из-за этого такой текст. Я поэтому и прошу подсказать способ, как с файла получить русские буквы и вывести и х так же. – kanejons2 Dec 15 '22 at 14:35
  • @kanejons2 Проверять кодировку у строки и перекодировать в cp1251 перед отображением – Виктор Dec 15 '22 at 14:39
  • @Виктор да я пробовал. Тогда просто пустое значение выходит – kanejons2 Dec 15 '22 at 14:40
  • @user7860670 могли бы подсказать как сделать, чтобы выводить с файла текст на русском? – kanejons2 Dec 15 '22 at 15:56
  • Следует либо сделать так, чтобы в файле и в консоли была одинаковая кодировка, либо преобразовывать кодировку текста после чтения из файла в кодировку консоли (для этого можно взять библиотеку ICU или iconv). – user7860670 Dec 15 '22 at 21:29

0 Answers0