Как работает EOF? - C (СИ)

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

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

Изучаю С по книге Кернигана. И тут вот пример вот такой
#include <stdio.h>
 
//Подсчет символов во входном потоке; 2-я версия;
 
double main()
{
    double nc;
 
    for (nc = 0; getchar()!=EOF; ++nc);
 
    printf("%.0f\n", nc);   
}
Я так понимаю, что после ввода определенного количества символов должно показать, какое значение находится в переменной nc. Но все дело в том, что значения вводятся, а вот значение переменной nc не выводит. Так как же работает EOF?

Решение задачи: «Как работает EOF?»

textual
Листинг программы
int main

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

  1. В начале программы объявляется переменная argc типа int, которая содержит количество аргументов, переданных в программу.
  2. Затем объявляется массив argv типа char, который содержит сами аргументы.
  3. Далее идет проверка на количество аргументов. Если их больше 1, то программа выводит сообщение об ошибке и завершается.
  4. Если аргументов достаточно, то программа начинает обработку.
  5. В цикле while происходит чтение данных из стандартного ввода (stdin).
  6. Если данных нет (EOF), то цикл завершается.
  7. В процессе цикла данные сохраняются в переменную buffer.
  8. После окончания цикла программа выводит сообщение о том, что данные были успешно прочитаны.
  9. Если в процессе чтения данных было обнаружено исключение, то программа выводит сообщение об ошибке и завершается.
  10. В конце программы возвращается значение 0, что означает успешное выполнение программы.

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

9   голосов , оценка 4 из 5