Program do znajdowania najdłuższego wiersza
Ostatnio zmodyfikowano 2011-10-23 13:49
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. #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; }
|
|
pekfos |
» 2011-10-22 20:26:13 getline już istnieje. a C nie posiada przeciążania. |
|
e_marcin Temat założony przez niniejszego użytkownika |
» 2011-10-22 20:30:25 Co to dokładnie oznacza? |
|
pekfos |
» 2011-10-22 20:31:22 Zmień nazwę bo jest zajęta! |
|
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. |
|
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); |
|
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. |
|
Drraven |
» 2011-10-22 21:13:35 bo funkcja getline(cin, zmienna); istnieje w standardzie ISO. Zoabacz sobie, że jest w dokumentacji. |
|
« 1 » 2 |