The OpenNET Project / Index page

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

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

"Почему не работает пример из книги"  
Сообщение от kom (??) on 18-Июл-06, 18:12 
Помогите плиз, почему у меня не работает эта программа
книга ЯЗЫК С Б.В. Керниган, Д.М. Ричи .

#define eof -1
#define  maxline  1000 /* maximum input
       line size */
main()  /* find longest line */
{
int len; /* current line length */
int max; /* maximum length seen so far */
char line[maxline]; /* current input line */
char save[maxline]; /* longest line, saved */

max = 0;
while ((len = getline(line, maxline)) > 0)
     if (len >  max) {
    max = len;
    copy(line, save);
     }
     if (max > 0)   /* there was a line */
    printf("%s", save);
}
getline(s,lim) /* get line into s,return length */
char s[];
int lim;
{
    int c, i;

    for(i=0;i<lim-1 && (c=getchar())!=eof && c!='\n';++i)
    s[i] = c;
    if (c == '\n')  {
  s[i] = c;
  ++i;
    }
    s[i] = '\0';
    return(i);
}

copy(s1, s2)    /* copy s1 to s2;
               assume s2 big enough */
char s1[], s2[];
{
int i;

i = 0;
while ((s2[i] = s1[i]) != '\0')
    ++i;
}
      

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

 Оглавление

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


1. "Почему не работает пример из книги"  
Сообщение от vnp email(ok) on 19-Июл-06, 00:17 
>Помогите плиз, почему у меня не работает эта программа
>книга ЯЗЫК С Б.В. Керниган, Д.М. Ричи .

Не мешало бы пояснить, как она не работает...

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

2. "Почему не работает пример из книги"  
Сообщение от phpcoder email(??) on 19-Июл-06, 06:20 
>#define eof -1

Это можно не определять и использовать EOF из stdio.h

> main()  /* find longest line */

int main(int argc, char *argv[])

Также, перед использованием ф-ии getline() и copy() нужно их объявить явно или использовать прототип:

int getline(char s[], int lim);
void copy(char s1[], char s2[]);

> getline(s,lim) /* get line into s,return length */
> char s[];
> int lim;

int getline(char s[], int lim)

>    for(i=0;i<lim-1 && (c=getchar())!=eof && c!='\n';++i)

Вы используете getchar() из стандартной библиотеки, а занечит должны подключить файл stdio.h

> copy(s1, s2)    /* copy s1 to s2;
>            
>   assume s2 big enough */
> char s1[], s2[];

void copy(char s1[], char s2[])


Это то что бросилось в глаза с первого взгляда. Исправьте это и, если не будет работать, то пожалуйста приведите также сообщение с ошибками -- так нам будет легче вам помочь. (потому что телепаты всё ещё в отпуске ;)) )


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

3. "Почему не работает пример из книги"  
Сообщение от kom (??) on 19-Июл-06, 10:45 
>Это то что бросилось в глаза с первого взгляда. Исправьте это и,
>если не будет работать, то пожалуйста приведите также сообщение с ошибками
>-- так нам будет легче вам помочь. (потому что телепаты всё
>ещё в отпуске ;)) )
хм... эта программа из книги как я и выше написал книга "ЯЗЫК С" Б.В. Керниган, Д.М. Ричи
программа компилиться без ошибок, но сама программа не работает, я просто не очень разбираюсь в "си" так как начал изучать, но думаю программа виснит в каком то условии


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

4. "Почему не работает пример из книги"  
Сообщение от phpcoder email(??) on 19-Июл-06, 11:40 
>но думаю программа виснит в каком то условии

Это хороший повод для вас познакомиться с отладчиком gdb ;-))


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

5. "Почему не работает пример из книги"  
Сообщение от Мимо проходил on 19-Июл-06, 12:47 
>>Это то что бросилось в глаза с первого взгляда. Исправьте это и,
>>если не будет работать, то пожалуйста приведите также сообщение с ошибками
>>-- так нам будет легче вам помочь. (потому что телепаты всё
>>ещё в отпуске ;)) )
>хм... эта программа из книги как я и выше написал книга "ЯЗЫК
>С" Б.В. Керниган, Д.М. Ричи
>программа компилиться без ошибок, но сама программа не работает, я просто не
>очень разбираюсь в "си" так как начал изучать, но думаю программа
>виснит в каком то условии

вы так и не пояснили - как она не работает..
по идее, если вы вместо ввода новой строки просто нажмёте Ctrl-D (eof),
она напечатает строку и завершится. То есть завешение программы - enter,Ctrl-d

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

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

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




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

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