Работа с файлами С++. 1)Выводит иероглифы
Здравствуйте, я только учусь и ошибки могут быть очень глупыми. Хотел узнать
Как избавится от иероглифов в том случае если текст в файле на русском языке.
Код:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int counter = -1;
ifstream fd;
fd.open("strings.txt");
char c;
while (!fd.eof()) //цикл для того чтоб определить из скольки элеиентов должен быть массив
{
fd.get(c);
counter++;
}
fd.close();
fd.open("strings.txt");
char* b = new char[counter+1];
int j = 0;
fd.get(b,counter+1);
for(int i =0;i<counter;i++)//вывод
{
cout << b[i];
}
delete[]b;
return 0;
}
Ответы (2 шт):
Автор решения: Артем Мартюхин
→ Ссылка
Рекомендую всегда использовать
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
вместо
setlocale(LC_ALL, "ru")
должно работать (шрифт консоли - Lucida Console)
Автор решения: Артем Мартюхин
→ Ссылка
Вопрос не давал мне покоя так как я помню что с ним сталкивался. В конце концов он плавал на поверхности. Создаем файл .txt -> открываем -> Сохранить как. Внизу окна сохранения будет пункт Кодировка. Меняем на UTF-8, если стоит ANSII, или наоборот если иначе. Пробуем
