Foros del Web » Programación para mayores de 30 ;) » C/C++ »

fgets

Estas en el tema de fgets en el foro de C/C++ en Foros del Web. Hola, hace tiempo que no programo en C y me esta dando problemas algo tan basico como leer un archivo. El archivo se ubica en ...
  #1 (permalink)  
Antiguo 22/02/2008, 12:17
 
Fecha de Ingreso: junio-2007
Mensajes: 55
Antigüedad: 16 años, 11 meses
Puntos: 0
fgets

Hola,

hace tiempo que no programo en C y me esta dando problemas algo tan basico como leer un archivo.

El archivo se ubica en el mismo directorio donde tengo el ejecutable del programa, con lo que no tengo que añadir rutas, y el nombre de este fichero es root.txt

El problema viene cuando intento leer las lineas del fichero... al mostrarlo por la linea de comandos me sale froot=<null>, y controot sale un codigo alfanumerico, cada vez uno, totalmente aleatorio (a mi parecer)

es mas, me deberia salir al menos en la misma ejecucion del programa el contenido de las dos lineas que leo distinto, pero no, en cada ejecucion controot vale lo mismo en las dos lineas (y aseguro que no contiene lo mismo en el txt.)

Código:
FILE *f;
char *froot; 
char *root;
char controot[255];
char nombre[255];

root="root.txt";

strcpy(nombre, root);

f = fopen(nombre, "r");

if (f == NULL)
{
 printf("Error al tratar de abrir el archivo %s",nombre);
 return EXIT_FAILURE;
}
else{printf("Abre root");}

froot=fgets(controot,100,f);
printf("\nTras leer root, contenido froot: %s y controot: %s \n", froot, controot);//controot);
froot=fgets(controot,100,f);
printf("\nTras leer root2, contenido froot: %s y controot: %s \n", froot, controot);
gracias
  #2 (permalink)  
Antiguo 24/02/2008, 06:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: fgets

No veo ningún error en tu código, lo probé y lee el fichero perfecto.

Código:
#include <stdio.h>
#include <string.h>

int main() {

  FILE *f;
  char *froot; 
  char *root;
  char controot[255];
  char nombre[255];

  root="root.txt";

  strcpy(nombre, root);

  f = fopen(nombre, "r");

  if (f == NULL)
    {
      printf("Error al tratar de abrir el archivo %s",nombre);
      return 1;
    }
  else
    {
      printf("Abre root");
    }

  froot=fgets(controot,100,f);
  printf("\nTras leer root, contenido froot: %s y controot: %s \n", froot, controot);//controot);
  froot=fgets(controot,100,f);
  printf("\nTras leer root2, contenido froot: %s y controot: %s \n", froot, controot);
  return 0;
}
__________________
programación php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:39.