Autor Tema: fscanf leer recuperar extraer datos de archivos txt en C. LenguajeC CU00538F  (Leído 10260 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Hola aquí dejo una posible solución al ejercicio CU00538F del tutorial online de programación en lenguaje C desde cero.

Citar
EJERCICIO

Crea un archivo denominado almacen.txt que contendrá una palabra en cada línea (para un total de 6 líneas) como se muestra a continuación:

El
gaucho
es
equilibrio
y
belleza
 

 

Crea un programa que cree un array de palabras de modo que se lea el contenido del archivo y se almacene en los elementos del array. Por ejemplo palabra[0] contendrá "El", palabra[1] contendrá "gaucho" y así sucesivamente. Usando un bucle, muestra por pantalla la frase (intercalando los espacios necesarios). En este caso el resultado del programa será como este:

<<Tras extraer la información del archivo construimos esta frase: El gaucho es equilibrio y belleza>>

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>



int main()
{
   char textoExtraido[6][50];
   int i = 0;
    FILE* fichero;
    fichero = fopen("almacen.txt", "rt");
    printf("\n La frase extraida del archivo es: \n\t");
    for ( i = 0; i <= 5; i++)
    {
        fscanf(fichero, "%s" , &textoExtraido[i]);
        fprintf("%s", textoExtraido[i]);
    }
    fclose(fichero);
    printf("\n Proceso de lectura completado \n");
    return 0;

}


Saludos  :D
« Última modificación: 24 de Junio 2016, 22:06 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #1 en: 17 de Junio 2016, 23:40 »
Hola Pandemia.

El código no funciona.

Utilizas:
Código: [Seleccionar]
fprintf("%s", textoExtraido[i]);
fprintf se usa para introducir datos en un archivo, no para mostrarlos por pantalla, en esa línea deberías usar printf, quedaría así:

Código: [Seleccionar]
printf("%s ", textoExtraido[i]);
Saludos. ;D

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #2 en: 19 de Junio 2016, 13:46 »
Tienes razón Pedro, es que primero estuve intentando hacer el archivo de escritura con las palabras del ejercicio y me hice un lío que no veas, y se me escapo esa f, pero ahora pongo el código rectificado, gracias por la corrección me sirve de mucha ayuda.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>



int main()
{
   char textoExtraido[6][50];
   int i = 0;
    FILE* fichero;
    fichero = fopen("almacen.txt", "rt");
    printf("\n La frase extraida del archivo es: \n\t");
    for ( i = 0; i <= 5; i++)
    {
        fscanf(fichero, "%s" , &textoExtraido[i]);
        printf("%s", textoExtraido[i]);
    }
    fclose(fichero);
    printf("\n Proceso de lectura completado \n");
    return 0;

}

 

Saludos.  :D

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #3 en: 19 de Junio 2016, 23:07 »
Bueno, te faltaría añadir un espacio entre cada palabra, para que no te salga todo junto.

Elgauchoesequilibrioybelleza

Por lo demás todo bien.

Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #4 en: 21 de Junio 2016, 00:19 »
Bueno a ver si así resuelvo lo del espacio, poniendo un puts(""). Es que no se porque tengo problemas para leer el archivo, me aparecen signos raros, en lugar de las palabras.

Te dejo el código para que le eches un vistazo si es posible. Gracias

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>



int main()
{
   char textoExtraido[6][50];
   int i = 0;
    FILE* fichero;
    fichero = fopen("almacen.txt", "rt");
    printf("\nLa frase extraida del archivo es:\n\t");
    for ( i = 0; i <= 5; i++)
    {
        puts("");
        fscanf(fichero, "%s" , &textoExtraido[i]);
        printf("%s", textoExtraido[i]);
    }
    fclose(fichero);
    printf("\n\nProceso de lectura completado \n");
    return 0;

}

 

Saludos y gracias por tu tiempo...  :D
« Última modificación: 24 de Junio 2016, 22:05 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #5 en: 21 de Junio 2016, 11:22 »
Buenas.

El ejercicio a mí me funciona bien, habría que ver el contenido que tienes en "almacen.txt" por si fuese eso lo que te está dando problemas.

Con puts(""); lo que haces es saltar de línea. También podrías añadir el espacio en esta línea, despues de "%s":
Código: [Seleccionar]
printf("%s ", textoExtraido[i]);
Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:LenguajeC CU00538F leer recuperar extraer datos de archivos en C.
« Respuesta #6 en: 21 de Junio 2016, 20:37 »
Ok, gracias por la corrección y de otra duda que me sacas, dejo el código nuevo.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>



int main()
{
   char textoExtraido[6][50];
   int i = 0;
    FILE* fichero;
    fichero = fopen("almacen.txt", "rt");
    printf("\nLa frase extraida del archivo es:\n\t");
    for ( i = 0; i <= 5; i++)
    {

        fscanf(fichero, "%s" , &textoExtraido[i]);
        printf("%s ", textoExtraido[i]);
    }
    fclose(fichero);
    printf("\n\nProceso de lectura completado \n");
    return 0;

}


Saludos y gracias por tu tiempo y paciencia.  :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".