Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
bi4ugan
11 / 11 / 12
Регистрация: 27.10.2014
Сообщений: 108
Завершенные тесты: 1
#1

Подсчет символов в файле

03.10.2015, 17:57. Просмотров 234. Ответов 5
Метки нет (Все метки)

Нужно найти сколько в файле букв (а,б,в...) алфавита.
Не могу понять как делать.
Начал с самого простого
C++
1
char alphabet[] = { 'А', 'Б', 'В','Г','Д','Е','Є','Ж','З' ,'И' ,'І' ,'Ї' ,'Й' ,'К' ,'Л' ,'М' ,'Н' ,'О' ,'П' ,'Р' ,'С' ,'Т' ,'У' ,'Ф' ,'Х','Ц', 'Ч','Ш','Щ','Ю','Я','Ь'};
Как можно пройтись полностью по файлу, не занося каждое отдельное слово в переменную?
Есть функция которая считает, количество символов и слов. Но не могу понять куда его всунуть.
В коде не сильно нуждаюсь, мне бы идею как это сделать.

Добавлено через 28 минут
У меня функция считает только буквы
C++
1
2
3
4
5
6
7
8
9
10
11
12
{
    int count = 0;
    string a;
    ifstream fin;
    fin.open("test.txt");
    while (!fin.eof())
    {
        fin >> a;
        count += a.length();
    }
    return count;
}
Как посчитать с пробелами?

Добавлено через 31 секунду
Может через sizeof как-то можно

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
int count = 0;
    int co = -1;
    string a;
    ifstream fin;
    fin.open("test.txt");
    while (!fin.eof())
    {
        fin >> a;
        count += a.length();
        co++;
    }
    return count+co;
Оптимизация слегка упоротым способом, но работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 17:57
Ответы с готовыми решениями:

Подсчет символов в файле
Всем привет! Прошу помощи) Надо написать программу, суть которой заключается...

Подсчет символов в файле
Дан текстовый файл, где в первой строке введено некоторое число N. Во второй...

Подсчет символов в файле. Не пашет
Добрый день! Пытаюсь в никнуть в основу основ С++ при помощи С++ Builder v.6...

Подсчет количества символов в файле
дан файл в нем содержится допустим 40 символов нужно чтоб программа подсчитала...

Подсчет символов пробелов и строк в файле
Дан текстовый файл. Подсчитать в нем общее количество символов, преобразовать...

5
zss
Модератор
Эксперт С++
7057 / 6603 / 4178
Регистрация: 18.12.2011
Сообщений: 17,400
Завершенные тесты: 1
03.10.2015, 18:03 #2
C++
1
2
3
4
5
6
7
8
9
10
int count[256]={0};
unsigned char a;
while (!fin.eof())
    {
        fin >> a;
        count[a]++;// сосчитали букву
}
for(int i=0;i<256;i++)
   if(count[i]!=0)
     cout<<"Буква "<<(unsigned char)i<<" встречается "<<count[i]<<" раз\n";
0
bi4ugan
11 / 11 / 12
Регистрация: 27.10.2014
Сообщений: 108
Завершенные тесты: 1
03.10.2015, 18:29  [ТС] #3
тьху ты, я тут такое уже придумал)

Добавлено через 3 минуты
Но вс же не понимаю как оно работает

Добавлено через 35 секунд
count[a]++

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
for (int i = 0;i < strlen(alphabet);i++)
    {
        while (!fin.eof())//aloha
        {
            fin >> symbol;
            if (symbol == alphabet[i]) counter++;
        }
        if(counter!=0) cout<<  alphabet[i] << ' ' << counter<<"\n";
    }
Добавлено через 34 секунды
Что сделать, что бы оно второй раз заходило в fin?

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0;i < strlen(alphabet);i++)
    {
        int counter = 0;
        while (!fin.eof())//aloha
        {
            fin >> symbol;
            if (symbol == alphabet[i]) counter++;
        }
        if(counter!=0) cout<<  alphabet[i] << ' ' << counter<<"\n";
        fin.close();
        fin.open("test.txt");
    }
что тут не так?
0
zss
Модератор
Эксперт С++
7057 / 6603 / 4178
Регистрация: 18.12.2011
Сообщений: 17,400
Завершенные тесты: 1
03.10.2015, 18:30 #4
Вам придется перематывать файл на начало strlen(alphabet) раз.
C++
1
fin.seekg(0);
Но в конечном счете делается то же самое, что и в моем примере.
Только вместо counter используется массив count, индексы которого используются как номера (коды) букв.
0
bi4ugan
11 / 11 / 12
Регистрация: 27.10.2014
Сообщений: 108
Завершенные тесты: 1
03.10.2015, 18:46  [ТС] #5
ToUpper все, щас буду пробывать

Добавлено через 25 секунд
C++
1
2
fin.close();
        fin.open("test.txt");
это бред?

Добавлено через 6 минут
Воббщем я все сделал, только оно работает только на англ буквы((

Добавлено через 8 минут
Со всем розобрался, но почему оно не определяет Кирилицу?
0
Nik-
20 / 20 / 11
Регистрация: 12.07.2015
Сообщений: 343
03.10.2015, 19:07 #6
Вот так будет считывать русские буквы -

C++
1
2
3
4
5
int main()
{
setlocale(LC_ALL,"rus");
//Ваш код
}
0
03.10.2015, 19:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2015, 19:07

Подсчет кол-ва символов в строке во входном файле
Подскажите как подсчитать кол-во символов в строке, введенная из файла, тип...

Подсчет количества символов русского алфавита в текстовом файле
Здравствуйте, нужна ваша помощь) Допустим у нас имеется текстовой файл...

Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле
Народ помогите пожалуйста решить задачу: подсчет частоты встречаемости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru