while(fgets(linea, 128, file_objetos_atributos)!=NULL){ if (linea=="Objetos:'\0'"){ printf("linea:%s\n",linea); } }
el problema es que al realizar la comparación if (linea=="Objetos:'\0'") no encuentra nunca esa linea. creo que el problema es los caracteres que la funcion fgets agrega.
Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
Publicado: 23/09/2007 7:37 pm
Título:
En C no puedes comparar dos cadenas directamente, en su lugar tienes que utilizar la funcion strcmp (prototipo en string.h) y verificar que el valor de retorno de esta funcion sea cero.
Aparte de eso la cadena que utilizas en la comparacion "Objetos:'\0'" no es la correcta ya que toda cadena literal delimitada por comillas dobles ya incluye el caracter '\0'. Tambien debes considerar que la funcion fgets no elimina de la cadena el caracter de fin de linea '\n'.
La comparacion deberia ser asi:
Código:
#include <string.h> /* prototipo de strcmp */
/* ... */
if (strcmp(linea, "Objetos:\n") == 0){ printf("linea:%s\n",linea); }
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz