Cita:
Iniciado por luface2000 Hola,
estoy estudiando C y leyendo el libro "El lenguaje de programación en C" de Kernighan y Ritchie. Me he quedado bloqueado en este ejemplo de la página 19 del libro en el que me da el siguiente error al compilar "Conflicting types for getline" en la línea 11 y 34 que he marcado en rojo en el código. Utilizo como IDE Eclipse CDT en Ubuntu 10.04.
Gracias.
Código:
#include <stdio.h>
#define MAXLINE 1000 /*Tamaño máximo de la línea de entrada*/
int getline(char line[], int maxline);
void copy(char to[], char from[]);
/*Imprime la línea más larga*/
main()
{
int len; /*longitud actual de la línea*/
int max; /*máxima longitud vista hasta el momento*/
char line[MAXLINE]; /*Línea de entrada actual*/
char longest[MAXLINE]; /*Línea más larga se guarda aquí*/
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;
}
Si mira, a esto que se hace ahi se le llama funciones prototipo, es una forma de asegurar que el programa va a buscar todas las funciones que declares. Pero para una correcta declaracion de una funcion prototipo, el enunciado del inicio debe ser exactamente el mismo que el que usas al momento de declarar la funcion, es decir a la primer linea en rojo sustituyela por algo asi.
Código:
int getline(char s[], int lim);
No olvides el punto y coma en la declaracion de las funciones prototipo