Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/02/2014, 22:57
Avatar de guzzano
guzzano
 
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 4 meses
Puntos: 13
Respuesta: como sustituir la funcion fgets y gets en c

getline y variable++, no son de C++, la función getline, la estás usando mal.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main ( void )
  5. {
  6.   size_t size_str;
  7.   char *str;
  8.  
  9.   size_str = 20;
  10.   str = NULL;
  11.  
  12.   getline(&str, &size_str, stdin);
  13.  
  14.   printf("str_text: %s", str);
  15.  
  16.   free(str);
  17. }

A getline, no le puedes pasar una variable en la memoria stack, tienes que pasarle un puntero ya que el reservará memoria para lo que esté en stdin, claro, siempre y cuando éste no pase el máximo. El prototipo de la función es

Código C:
Ver original
  1. ssize_t getline(char **lineptr, size_t *n, FILE *stream);

Pero no es para nada necesario que cambies tu fgets, por getline, función, que me parece de paso, algo absurda. Tu problema aquí, son las funciones de validación, siempre estás devolviendo 0.

Saludos
__________________
Si me equivoco, corríjanme sin piedad.