Resultados 1 al 2 de 2

En C: Leer desde un carácter de un fichero con fscanf

Esta es una discusión para el tema En C: Leer desde un carácter de un fichero con fscanf en el foro Programación, bajo la categoría Webmasters y Programadores; Hola!, resulta que estoy programando en C y quiero leer un carácter que hay guardado en un archivo. Solo quiero leer un único carácter que hay en una línea, por ...
Página: 1


  1. #1
    Member Avatar de Supra_One

    Fecha de ingreso
    05 oct, 11
    Mensajes
    85

    En C: Leer desde un carácter de un fichero con fscanf

    Hola!, resulta que estoy programando en C y quiero leer un carácter que hay guardado en un archivo. Solo quiero leer un único carácter que hay en una línea, por lo que uso %c, pero me da error =SSSS.

    Les dejo el código:
    Código:
    void mostrar_ficha()
         {
         FILE* a;
         a=fopen ("ficha.txt", "rt");
    
         printf ("*** Ficha ***\n");
         fscanf (a, "%s", datos.nombre);
         printf ("Nombre: %s\n", datos.nombre);
         fscanf (a, "%d", &datos.edad);
         printf ("Edad: %d\n", datos.edad);
    //     fscanf (a, "%c", datos.sexo);
    //     printf ("Sexo: %c\n", datos.sexo);
         printf ("Fin de la ficha");
         fclose(a);
         }
    Lo que tengo puesto como comentario es lo que me salta mal (quitando las barras comentadas claro), o sea, que el resto del código lo tengo bien.

    El caso es que guardé en datos.sexo un único carácter, h o m, que es lo que se guarda en el archivo ficha.txt, pero a la hora de escanearlo con fscanf usando %c me salta error y se me cierra el programa. Si pongo %s también me salta error, aunque ahí supongo que me lo salta con %s porque antes lo guardé como 1 carácter y no más.

    ¿Alguna idea? ^^U. Gracias de antemano.

     
     
  2. #2
    Colaborador

    Fecha de ingreso
    30 ago, 06
    Ubicación
    Aragón
    Mensajes
    1,046
    Hola Supra_One.

    Poco podemos decir con eso que has puesto si dices que compila sin problemas. No se me ocurre nada en un principio. ¿Qué error te aparece? Estaría bien que nos mostraras también la estructura datos. Puedes probar a usar fgetc, es algo "excesivo" el uso que haces del fscanf, y más en este caso para leer un caracter. Si utilizas fscanf puedes leer todo de golpe y luego escribirlo, sería más eficiente, ¿no crees? Es una propuesta, igual por algo que no tengo en cuenta no te es posible, es por si puedes valorarlo.

    Por cierto, ¿por qué están separados los datos en el fichero? Supongo que es de texto, en cualquier caso deberías leer e ignorar los separadores, quizá el problema sea que al leer la edad el cursor queda después del número (apuntando al separador) y al ir a leer un caracter, lees sólo el separador y si luego exiges que sea h o m salte el error.

    Con los datos que te comento aclarados si no te sirve eso quizá podamos ayudarte más.

    Un saludo.

     
     

Temas similares

  1. leer fichero texto y salvarlo a audio
    Por list en el foro Multimedia
    Respuestas: 2
    Último mensaje: 01/09/2008, 20:50
  2. No puedo leer desde archivo en c++
    Por WaLLuS en el foro Programación
    Respuestas: 1
    Último mensaje: 22/05/2007, 15:20
  3. Leer correo desde el MSN con Firefox
    Por turdera en el foro Familia Windows Live (MSN)-Chats-IRC
    Respuestas: 8
    Último mensaje: 14/09/2006, 19:45
  4. Enviar secuencia de carácteres desde fichero BAT
    Por valse en el foro Programación
    Respuestas: 2
    Último mensaje: 10/06/2006, 18:26
  5. Respuestas: 2
    Último mensaje: 18/02/2005, 16:40

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •