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

Problem z getline w każdym zadaniu

Ostatnio zmodyfikowano 2014-11-15 15:02
Autor Wiadomość
piotrek.gk
Temat założony przez niniejszego użytkownika
Problem z getline w każdym zadaniu
» 2014-11-15 13:38:38
Witam,

Zaczynam się uczyć C na podstawie książki "Język ANSI C" i mam problem z jedną linią w każdym zadaniu. Przy kompilacji w terminalu jest komunikat
1.19.c:3:5: error: conflicting types for ‘getline’
 int getline(char line[], int maxline);
     ^
In file included from 1.19.c:1:0:
/usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here
 extern _IO_ssize_t getline (char **__restrict __lineptr,

Jest to zadanie 1.19 przepisane z tej książki i kilkukrotnie przez mnie sprawdzone i nadal jest ten sam błąd. Czy ktoś może wie co należy poprawić?

A to całe zadanie"
C/C++
#include <stdio.h>
#define MAXLINE 1000 /*maksymalny rozmiar wiersza*/
int getline( char line[], int maxline );
void reverse( char s[] );
/*odwroc kolejno wszystkie wiersze wejsciowe*/
main()
{
    char line[ MAXLINE ]; /*biezacy wiersz z wejscia*/
    while( getline( line, MAXLINE ) > 0 ) {
        reverse( line );
        printf( "%s", line );
    }
    return 0;
}
/*reverse: odwroc kolejnosc znakow tekstu s*/
void reverse( char s[] )
{
    int i, j;
    char temp; /*tymczasowe miejsce na znak*/
    i = 0;
    while( s[ i ] != '\0' ) /*znajdz znacznik konca tekstu*/
         ++i;
   
    --i; /*cofnij sie przed ten znacznik*/
    if( s[ i ] == '\n' ) /*znak nowego wiersza*/
         --i;
   
    j = 0; /*poczatek nowego tekstu w s */
    while( j < i ) {
        temp = s[ j ];
        s[ j ] = s[ i ]; /*zamien znaki miejscami*/
        s[ i ] = temp;
        --i;
        ++j;
    }
}
P-120653
Jacob99
» 2014-11-15 13:41:57
Masz konflikt nazw.
getline(char[], int) jest już zdefiniowane w stdio.h
P-120654
piotrek.gk
Temat założony przez niniejszego użytkownika
» 2014-11-15 13:48:39
Dzięki, tylko nie wiem co dalej mam z tym zrobić.
P-120655
Jacob99
» 2014-11-15 13:52:27
Użyj innej nazwy lub innych argumentów funkcji.
P-120656
piotrek.gk
Temat założony przez niniejszego użytkownika
» 2014-11-15 14:23:00
Zmieniłem nazwę funkcji jak i odwołania do niej w dalszej części kodu, ale nadal sypie błędami

/tmp/ccy9S702.o: In function `main':
1.19.c:(.text+0x54): undefined reference to `igetline'
collect2: error: ld returned 1 exit status
P-120658
Jacob99
» 2014-11-15 15:00:19
Bo nie zdefiniowałeś tej funkcji.
P-120660
kubawal
» 2014-11-15 15:02:09
Bo ty chyba nie chcesz jej definiować. To jest tylko dodatkowa deklaracja. Usuń ją albo wykomentuj.
P-120661
« 1 »
  Strona 1 z 1