Считать файл с кириллицей [дубликат]

96
22 мая 2021, 00:10
На этот вопрос уже даны ответы здесь:
Русский язык в консоли (5 ответов)
Закрыт 1 год назад.

Вот код:

#include "pch.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    ifstream f("1.txt");
    string buff = "";
    while (!f.eof()) {
        f >> buff;
        cout << buff << endl;
    }
    f.close();
    return 0;
}

В 1.txt написано: "Привет мир!". Проблема в том что в консоли отображаются каракули.

Answer 1

Попробуй заменить setlocale(LC_ALL, "Russian") на

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

и в загловках добавить #include <Windows.h>

п.с если что не правильно, не судите, только начал учить C++

#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    ifstream f("1.txt");
    string buff = "";
    while (!f.eof()) {
        f >> buff;
        cout << buff << endl;
    }
    f.close();
    return 0;
}
READ ALSO
Определение класса без реализации

Определение класса без реализации

Что означает такая запись: class MyClass; ? объявление существующего класса без реализации

112
Выравнивание заголовков разных блоков

Выравнивание заголовков разных блоков

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

132
Rigidbody двигает объект вниз при положительной силе

Rigidbody двигает объект вниз при положительной силе

Рассчитываю силу по формуле Масса * ускорение, при положительном ускорение меньше чем 10 объект идет вниз,при ускорение 10 и больше объект только...

90