Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program do znajdowania najdłuższego wiersza

Ostatnio zmodyfikowano 2011-10-23 13:49
Autor Wiadomość
e_marcin
Temat założony przez niniejszego użytkownika
Program do znajdowania najdłuższego wiersza
» 2011-10-22 20:23:59
Niedawno zacząłem naukę z książką ANSI C Kernighana i Ritchiego i zatrzymałem się na rozdziale 1.9. Mój problem polega na tym, że przepisuje cały program dosłownie z książki i nie chce się skompilować.

Kompilowałem pod Linuxem w VIM'ie i wyskakuje taki błąd:
conflicting types for ‘getline’

Sprawdzałem 3 razy czy dobrze przepisałem, a także kompilator rozumiał wszystko co pisałem do tej pory. Może ktoś mi podpowie co mam zrobić żeby to zadziałało.

C/C++
#include <stdio.h>
#define MAXLINE 1000

int getline( char line[], int maxline );
void copy( char to[], char from[] );

main()
{
    int len;
    int max;
    char line[ MAXLINE ];
    char longest[ MAXLINE ];
   
    max = 0;
    while(( len = getline( line, MAXLINE ) ) > 0 )
    if( len > max ) {
        max = len;
        copy( longest, line );
    }
    if( max > 0 )
         printf( "%s", longest );
   
    return 0;
}

int getline( 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;
}

void copy( char to[], char from[] )
{
    int i;
   
    i = 0;
    while(( to[ i ] = from[ i ] ) != '\0' )
         ++i;
   
}
P-42477
pekfos
» 2011-10-22 20:26:13
getline już istnieje. a C nie posiada przeciążania.
P-42479
e_marcin
Temat założony przez niniejszego użytkownika
» 2011-10-22 20:30:25
Co to dokładnie oznacza?
P-42482
pekfos
» 2011-10-22 20:31:22
Zmień nazwę bo jest zajęta!
P-42483
e_marcin
Temat założony przez niniejszego użytkownika
» 2011-10-22 20:40:28
Faktycznie zmiana nazwy funkcji getline pomogła, ale nie rozumiem dlaczego. Istnieje jakaś inna domyślna funkcja getline? Do tego dziwie się, że autorzy książki tak napisali.
P-42484
pekfos
» 2011-10-22 20:43:16
je tam. Ja widziałem książkę w której pisali
iostream.h
 i to ponoć było o najnowszym standardzie (wtedy 03);
P-42487
e_marcin
Temat założony przez niniejszego użytkownika
» 2011-10-22 20:53:50
Ok, rozumiem. Jak jeszcze wytłumaczysz dokładnie dlaczego pod nazwą 'getline' nie działało to będzie super.
P-42489
Drraven
» 2011-10-22 21:13:35
bo funkcja getline(cin, zmienna); istnieje w standardzie ISO. Zoabacz sobie, że jest w dokumentacji.
P-42493
« 1 » 2
  Strona 1 z 2 Następna strona