Работа с файлами С++. 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, или наоборот если иначе. Пробуем

→ Ссылка