Дан файл со строками, подсчитать количество чисел в нем(именно чисел, а не цифр) - C (СИ)

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

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

Подскажите как организовать чтение чисел.

Решение задачи: «Дан файл со строками, подсчитать количество чисел в нем(именно чисел, а не цифр)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. int main()
  6. {
  7.     FILE *f;
  8.     char str[100];
  9.     int i,find,n;
  10.  
  11.     f=fopen("MyFile","r");
  12.     n=0;
  13.     while(fgets(str,100,f)!=NULL)
  14.     for(find=i=0; *(str+i); i++)
  15.     if(*(str+i)>='0' && *(str+i)<='9' || find && *(str+i)=='.')
  16.     {
  17.         if(!find)
  18.         {
  19.             find=1;
  20.             n++;
  21.         }
  22.     }
  23.     else find=0;
  24.     fclose(f);
  25.     printf("numbers=%d\n",n);
  26.     getch();
  27.     return 0;
  28. }

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

В этом коде:

  1. Объявляются переменные:
    • FILE *f; - указатель на файл;
    • char str[100]; - строка для чтения информации из файла;
    • int i,find,n; - счётчики.
  2. Открывается файл с помощью функции fopen.
  3. Устанавливается счётчик чисел в 0.
  4. Происходит чтение файла с помощью цикла while(fgets(str,100,f)!=NULL).
  5. В каждой строке ищутся числа с помощью вложенного цикла for(find=i=0; *(str+i); i++).
  6. Если символ является числом или точкой и предыдущий символ был числом, то увеличивается счётчик чисел.
  7. Если в строке нет чисел, то сбрасывается счётчик чисел.
  8. После чтения всех строк закрывается файл с помощью функции fclose.
  9. Выводится количество чисел с помощью функции printf.
  10. Ждётся нажатия клавиши с помощью функции getch.
  11. Возвращается 0, чтобы указать, что программа успешно завершилась.

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


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

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

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

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

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

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