Дан файл со строками, подсчитать количество чисел в нем(именно чисел, а не цифр) - 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, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д