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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
unsigned file_count_n(const char* fn){
    int  i, j;
    char b[256], *p;
    unsigned n = 0;
    FILE*   fp = fopen(fn, "rt");
    if(fp == NULL)
        return 0;
    
    i = 0;
    while(fgets(b, sizeof(b) - 1, fp) != NULL){
        if(ferror(fp) != 0)
            break;
 
        for(p = &b[0]; *p; ++p){
            j = (*p >= '0' && *p <= '9');
            if(j)
                ++i;
            else if(! j){
                if(i > 0)
                    ++n;
                i = 0;
            }
        }
    }
    fclose(fp);
    return n + (unsigned)(i != 0);
}
 
int main(void){
    char  fn[] = "file.txt";
    unsigned n = file_count_n(fn);
    printf("count numbers: %u\n", n)
    return 0;
}

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

В этом коде:

  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
Похожие ответы