Anónimo
Anónimo preguntado en EducaciónAyuda con los estudios · hace 9 meses

¿Quiero pasar datos de un fichero a un registro HELP?

Debo leer un fichero que contiene letras, números y la traducción de estos en código morse. Ejemplo: A .-* (la * es una centinella). He logrado leer y mostrar lo que hay en el fichero y también poner las letras y números en una variable del registro y la traducción en otra. Lo que pasa es que solo pone la letra A en la variable letras y todo lo demás esta en la variable traducción, como lo puedo arreglar? En la imagen se ve lo que se guardó en el registro, se me repite dos veces letra y traducción. Si os fijáis la A es la única letra que está en letra, lo demás está en traducción. Después de abrir el fichero puse esto. Esta bien? Claramente el programa sigue pero esta es la parte que me falla.

if (fit!=NULL)

    {

        while (!feof(fit))

            {

                fscanf(fit,"%c %s",&dicc[contador].lletra,dicc[contador].codi_morse);

                contador++;

            }

            for(i=0; i<contador;i++)

            {

                printf("lletra: %c\n", dicc[i].lletra);

                printf("traduccio: %s\n", dicc[i].codi_morse);

            }

Attachment image

2 respuestas

Calificación
  • Anónimo
    hace 9 meses

    Roberto al hacer lo que me dijiste me muestra esto,las letras estan en letras pero tabien se encuentra la traducción junto a ellas.

    Attachment image
  • hace 9 meses

    Hace mucho que no veo nada de C. Tal vez está leyendo los espacios y los retornos de línea como un caracter (%c). Eso explicaría también porque algunas letra: tienen un renglón vacío y otras no.

    Tal vez te convenga decirle que quieres que lea otra %s en vez de %c, así no toma en cuenta los espacios.

¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.