Дан файл со строками, подсчитать количество чисел в нем(именно чисел, а не цифр) - C (СИ)
Формулировка задачи:
Подскажите как организовать чтение чисел.
Решение задачи: «Дан файл со строками, подсчитать количество чисел в нем(именно чисел, а не цифр)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { FILE *f; char str[100]; int i,find,n; f=fopen("MyFile","r"); n=0; while(fgets(str,100,f)!=NULL) for(find=i=0; *(str+i); i++) if(*(str+i)>='0' && *(str+i)<='9' || find && *(str+i)=='.') { if(!find) { find=1; n++; } } else find=0; fclose(f); printf("numbers=%d\n",n); getch(); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
FILE *f;
- указатель на файл;char str[100];
- строка для чтения информации из файла;int i,find,n;
- счётчики.
- Открывается файл с помощью функции
fopen
. - Устанавливается счётчик чисел в 0.
- Происходит чтение файла с помощью цикла
while(fgets(str,100,f)!=NULL)
. - В каждой строке ищутся числа с помощью вложенного цикла
for(find=i=0; *(str+i); i++)
. - Если символ является числом или точкой и предыдущий символ был числом, то увеличивается счётчик чисел.
- Если в строке нет чисел, то сбрасывается счётчик чисел.
- После чтения всех строк закрывается файл с помощью функции
fclose
. - Выводится количество чисел с помощью функции
printf
. - Ждётся нажатия клавиши с помощью функции
getch
. - Возвращается 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д