Определение количества отрицательных чисел в файле - C (СИ)
Формулировка задачи:
Дан текстовый файл. В нём записано N кол-во чисел. Вычислить кол-во отрицательных чисел.
Ребят, по сути лёгкая задача, но сижу уже туплю 3 часа, не могу связать всё это дело с файлом. Т.е если с клавы вводить, то всё нормально считает, а вот как из файла прочитать эти числа для меня нерешаемая уже как 3 часа загадка
Решение задачи: «Определение количества отрицательных чисел в файле»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fi;
char *Fname="d:\\123.txt";
int n=0,p;
if ((fi=fopen(Fname,"r"))==NULL)
{
printf("Error by open\n");
system("PAUSE");
return 0;
}
else
while (fscanf(fi,"%d",&p)!=EOF)
if (p < 0) n++;
fclose(fi);
printf("Negative numbers: %d\n",n);
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и стандартными функциями
- Объявление переменных: файловый указатель
fi, строкаFnameс путем к файлу, переменнаяnдля подсчета отрицательных чисел и переменнаяpдля хранения прочитанного числа - Проверка открытия файла. Если файл не открылся, выводится сообщение об ошибке и вызывается функция
system(PAUSE), которая приостанавливает выполнение программы до нажатия клавишиPAUSE. Затем возвращается 0, чтобы завершить работу программы - Если файл успешно открылся, выполняется цикл
while, который продолжается, пока функцияfscanf(fi,%d,&p)не вернетEOF. Это означает, что достигли конца файла. Внутри цикла проверяется, является ли текущее число отрицательным. Если это так, увеличивается счетчикn - После окончания чтения файла, функция
fclose(fi)закрывает файл, а функцияprintf(Negative numbers: %d\n,n)выводит количество найденных отрицательных чисел. - Вызов функции
system(PAUSE)для приостановки выполнения программы до нажатия клавишиPAUSE - Возврат 0, чтобы завершить работу программы