Форум программистов, компьютерный форум CyberForum.ru

Работа с текстовыми файлами - C++

Восстановить пароль Регистрация
 
grisha770
0 / 0 / 0
Регистрация: 14.06.2010
Сообщений: 21
20.06.2010, 17:07     Работа с текстовыми файлами #1
Всем доброго дня!
Нужна помощь в решении следующей работы:
Нужно создать файл, содержащий текст, набранный заглавными английскими буквами. Провести частотный анализ текста, т.е. указать (в %), сколько раз встречается та или иная буква.

Может быть, кто-нибудь поможет? Заранее спасибо.

Добавлено через 1 час 46 минут
Вот кое-как написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{   int b[256],j,n;
    char c;
    FILE *f;
    clrscr();
    for (j=0;j<n;j++) b[j]=0;
    f=fopen("18.txt","w+");
    puts("Vvedite simv. Konec - *");
    while ((c=getchar())!='*')
    putc(c,f);
    printf("\n");
    fclose(f);
    f=fopen("18.txt","r");
    while ((c=fgetc(f))!=EOF) b[c]++;
    fclose(f);
    for (c='A'; c<='Z'; c++)
    printf("%c-%d raz \n", c, b[c]);
    getch();
    }
Как перевести в проценты кол-во букв, которые встречаются в тексте?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2010, 17:07     Работа с текстовыми файлами
Посмотрите здесь:

C++ Работа с текстовыми файлами
Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
C++ Работа с текстовыми файлами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
20.06.2010, 17:10     Работа с текстовыми файлами #2
Цитата Сообщение от grisha770 Посмотреть сообщение
Как перевести в проценты кол-во букв, которые встречаются в тексте?
разделить на общее количество букв в файле и умножить на 100
grisha770
0 / 0 / 0
Регистрация: 14.06.2010
Сообщений: 21
20.06.2010, 17:16  [ТС]     Работа с текстовыми файлами #3
Mur3ik, я попробовал. Теперь по нулям все.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
20.06.2010, 17:34     Работа с текстовыми файлами #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
   int alph[26] = {0};
   int buf, count = 0, offset, i;
   FILE *file;
 
   file = fopen("D:\\progexp\\in.txt", "w");
   offset = 'a' - 'A';
   while ((buf = fgetc(stdin)) != EOF)
   {
      if (buf >= 'a' && buf <= 'z')
      {
         buf -= offset;
         alph[buf-'A']++;
      }
      count++;
      fputc(buf, file);
   }
   fclose(file);
   for (i = 0; i < 26; i++)
   {
      printf("%c - %2.2f%\n", (i+'A'), alph[i]*100./count);
   }
   getch();
   return 0;
}
Добавлено через 31 секунду
Цитата Сообщение от grisha770 Посмотреть сообщение
Mur3ik, я попробовал. Теперь по нулям все.
Про приведение типов не забываем?
grisha770
0 / 0 / 0
Регистрация: 14.06.2010
Сообщений: 21
20.06.2010, 17:42  [ТС]     Работа с текстовыми файлами #5
kazak, мне б лучше в моем коде расчет в % сделать...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
20.06.2010, 17:52     Работа с текстовыми файлами #6
Вот товой код исправленный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <conio.h>
#include <stdio.h>
 
void main()
{   int b[256],j,n =0;
    char c;
    FILE *f;
    clrscr();
    for (j=0;j<256;j++) b[j]=0;/*сдесь вместо 256 была n, причем неинициализированная, как работало - хз*/
    f=fopen("18.txt","w+");
    puts("Vvedite simv. Konec - *");
    while ((c=getchar())!='*')
    {
       putc(c,f);
       b[c]++;
       n++; /*переделаем n под счетчик символов*/
    }
    printf("\n");
    fclose(f);
    for (c='A'; c<='Z'; c++)
    printf("%c - %d raz, budet %3.2f% \n", c, b[c], b[c]*100./n);
    getch();
    }
Yandex
Объявления
20.06.2010, 17:52     Работа с текстовыми файлами
Ответ Создать тему
Опции темы

Текущее время: 14:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru