The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Подсчет и выход EOF"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Подсчет и выход EOF"  
Сообщение от Len email(ok) on 07-Фев-06, 22:25 
Здравствуйте.
Программа должна подсчитывать количество строк файла.
Как задать программе подсчитывать строки определенного файла
и выходить из цикла подсчета по окончании файла?

#./a.out file
Нет результата.

Пример из Карнигана и Ричи, но без результата:

#define EOF 0
main()
{
int c,nl;
while((c=getchar())!=EOF)
if (c=='\n')
        ++nl;
printf("%d\n", nl);
}

#uname -a
FreeBSD 5.4

Также непонятно, почему EOF  не срабатывает.
Заранее благодарен.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Подсчет и выход EOF"  
Сообщение от gyn61 (ok) on 08-Фев-06, 00:40 
./a.out < file

EOF не срабатывает по той же причине.

PS. Не досмотрел

#define EOF (-1)

А лучьше вместо этого в начале программы:

#include <stdio.h>

да и nl неплохо было бы обнулить вначале.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Подсчет и выход EOF"  
Сообщение от chip email(ok) on 08-Фев-06, 00:49 
>Здравствуйте.
>Программа должна подсчитывать количество строк файла.
>Как задать программе подсчитывать строки определенного файла
>и выходить из цикла подсчета по окончании файла?
>
>#./a.out file
>Нет результата.
>
>Пример из Карнигана и Ричи, но без результата:
>
>#define EOF 0
>main()
>{
>int c,nl;
>while((c=getchar())!=EOF)
>if (c=='\n')
>        ++nl;
>printf("%d\n", nl);
>}
>
>#uname -a
>FreeBSD 5.4
>
>Также непонятно, почему EOF  не срабатывает.
>Заранее благодарен.

#include <stdio.h>

main()
{
  int c, nl = 0;
  while ((c=getchar()) != EOF) {
    if (c == '\n')
      ++nl;
  }
  printf("%d\n", nl);
}

Как минимум инициализировать nl.
1. gcc <filename>.c
2. cat </path/to/filename> | ./a.out

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру