Подсчитать количество чисел в текстовом файле - C (СИ) (72411)

Узнай цену своей работы

Формулировка задачи:

Подсчитать кол-во чисел в текстовом файле.

Решение задачи: «Подсчитать количество чисел в текстовом файле»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. unsigned file_count_n(const char* fn){
  4.     int  i, j;
  5.     char b[256], *p;
  6.     unsigned n = 0;
  7.     FILE*   fp = fopen(fn, "rt");
  8.     if(fp == NULL)
  9.         return 0;
  10.    
  11.     i = 0;
  12.     while(fgets(b, sizeof(b) - 1, fp) != NULL){
  13.         if(ferror(fp) != 0)
  14.             break;
  15.  
  16.         for(p = &b[0]; *p; ++p){
  17.             j = (*p >= '0' && *p <= '9');
  18.             if(j)
  19.                 ++i;
  20.             else if(! j){
  21.                 if(i > 0)
  22.                     ++n;
  23.                 i = 0;
  24.             }
  25.         }
  26.     }
  27.     fclose(fp);
  28.     return n + (unsigned)(i != 0);
  29. }
  30.  
  31. int main(void){
  32.     char  fn[] = "file.txt";
  33.     unsigned n = file_count_n(fn);
  34.     printf("count numbers: %u\n", n)
  35.     return 0;
  36. }

Объяснение кода листинга программы

В этом коде:

  1. Создается функция file_count_n, которая принимает в качестве аргумента имя файла и возвращает количество чисел в файле.
  2. В функции используется массив b размером 256 символов для чтения данных из файла построчно.
  3. Функция открывает файл с помощью fopen и проверяет, открылся ли файл успешно. Если файл не открылся, функция возвращает 0.
  4. Переменная i инициализируется как 0. Она используется для подсчета количества чисел в каждой строке.
  5. В цикле while функция читает каждую строку из файла с помощью fgets. Если чтение строки не удалось, цикл прерывается.
  6. В каждой строке в цикле for проверяется каждый символ. Если символ является числом, то увеличивается счетчик i. Когда встречается нечисловой символ, значение i сбрасывается до 0, и переменная n увеличивается на 1.
  7. После окончания чтения файла, функция закрывает его с помощью fclose и возвращает общее количество чисел в файле, а также количество чисел в последней строке, если она не пустая.
  8. В функции main создается строка fn, содержащая имя файла file.txt.
  9. Функция file_count_n вызывается с аргументом fn, и результат сохраняется в переменной n.
  10. Значение n выводится на экран с помощью printf.
  11. Функция main возвращает 0, заканчивая выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы