Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 19
1

Чтение строки символов из файла

23.09.2013, 17:06. Просмотров 2559. Ответов 1
Метки нет (Все метки)

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

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int entrop1()      //функция расчёта энтропии по частотам одиночн. символов
{
    FILE *f;                            //создаём объект класса FILE
    char *filename = new char[255];     //переменная - имя файла
    int n;
    char ch;
    char str_file [255];
    
    n=0;
 
    printf("\n Введите имя файла и через точку его расширение (например-myfile.doc): ");
    scanf("%s", filename);        //ввод имени анализируемого файла
    f = fopen(filename, "r");     //открытие файла для чтения его данных
    if (f!=NULL)
        {
            fseek(f,0L,SEEK_SET);               //указатель позиции помещается в начало файла
            while ( (ch = getc(f))!=EOF )       //цикл для чтения значений из файла; выполнение цикла прервется,
                                                //когда достигнем конца файла
            {
                //n = ftell(f);                 //функция ftell(f) возвратит число символов в открытом файле
                fgets(str_file,sizeof(str_file),f); 
                //ch = getc(f);                 //чтение очередного значения из потока f в переменную сh
                //printf("%c", ch);
                n++;                            //увеличение количества считанных символов
            }
            fclose(f);  //закрытие потока
            printf(" Количество символов в файле = %d", n);    //вывод на экран количества считанных чисел
            n=0;
        }
    else printf(" Файл не существует"); //если открытие файла прошло некорректно, то вывод
                                        //сообщения об отсутствии такого файла
    getchar();
    return 0;
}
 
int main()
{
    system("chcp 1251");    //зададим кодировку для корректного вывода кириллицы
 
    int i, c1;
    printf("\n Какое количество файлов вы хотите проанализировать?\n Введите их количество: ");
    scanf("%d", &c1);         //ввод количества анализируемых файлов
    for(i=0; i<c1; i++)    //цикл подсчитает энтропию для каждого файла
    {
        entrop1();          //обращение к функции подсчёта энтропии по частотам одиноч. символов
    }
    getchar();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2013, 17:06
Ответы с готовыми решениями:

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

Создать новую строку из N первых символов считанного из файла строки и E последних символов другой строки
Создать новую строку из N первых символов считанных из файла строк и E последних символов другой...

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, &quot;ing&quot;) в текстовом документе. в...

Чтение символов из строки
Мне нужно из строковой переменной считать символы. То есть, например, имеем строку 56-&gt;57. Нужно...

1
Z3JheSBoYXQ=
339 / 234 / 83
Регистрация: 08.07.2012
Сообщений: 577
23.09.2013, 20:09 2
C
1
2
3
4
5
6
7
8
9
    while ( (ch = getc(f))!=EOF )       //цикл для чтения значений из файла; выполнение цикла прервется,
                                                //когда достигнем конца файла
            {
                //n = ftell(f);                 //функция ftell(f) возвратит число символов в открытом файле
                fgets(str_file,sizeof(str_file),f); 
                //ch = getc(f);                 //чтение очередного значения из потока f в переменную сh
                //printf("%c", ch);
                n++;                            //увеличение количества считанных символов
            }
C
1
2
3
4
5
6
7
  int newline = 0, countsym=0;
while (! feof(f)){
  char sym = fgetc(f);
  if (sym == '\n')  newline++;
  countsym++;
}
printf("total sym in file: %d\nCount lines in file: %d\n", countsym, newline);
Добавлено через 1 минуту
Ты или читай файл по байтно или блочно. fgets читает блоками по размеру переменного буфера, fgetc читай побайтно.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2013, 20:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Чтение символов из файла
Всем привет. Может кто может подсказать как изменить программу, чтобы символы вводились не с...

Чтение символов из файла
из файла содержащего текст, который не привышает 1000 символов 1) вывести текст на экран дисплея...

Чтение символов из файла
Дан текст; определить, содержит ли он символы, отличные от букв и пробела

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


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

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

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