• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Чтение Русских Символов Из Файла

  • Автор темы Alvellu
  • Дата начала
A

Alvellu

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

C++:
#include<iostream>
#include<fstream>
#include<cctype>
#include<conio.h>
using namespace std;

int main()
{
setlocale (LC_ALL, "Russian");

wifstream txtfile;
wchar_t ch;
const wchar_t alph[33]={L'А',L'Б',L'В',L'Г',L'Д',L'Е',L'Ё',L'Ж',L'З',L'И',L'Й',L'К',L'Л',L'М',L'Н',L'О',L'П',L'Р',L'С',L'Т',L'У',L'Ф',L'Х',L'Ц',L'Ч',L'Ш',L'Щ',L'Ъ',L'Ы',L'Ь',L'Э',L'Ю',L'Я'};
int letters[33] = {0};


txtfile.open("txtfile.txt", ios::binary);
if (!txtfile) return -1;

while(txtfile.get(ch))
{
if(isalpha(ch))
{
for(int i=0;i<33;i++)
{
if(ch==alph[i]) letters[i]++;
}
}
}

for(int i=0;i<33;i++) 
wcout << alph[i] << L'\t' << letters[i] << endl;

txtfile.close();

wcout << endl << L"Press any key\n";
getch();

return 0;
}
 
L

lazybiz

Может это связано с тем что файл с буквами у тебя записан не в UNICODE !?
 
A

a0z

Наиболее простое решение:

1. сохранить файл в CP1251
2. Убрать L перед буквами, и поправить типы (wchar_t -> char)
3. Сохранить исходник в CP1251
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!