Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pandemia en 17 de Junio 2016, 20:58
-
Hola aquí dejo una posible solución al ejercicio CU00538F del tutorial online de programación en lenguaje C desde cero.
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>>
#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
-
Hola Pandemia.
El código no funciona.
Utilizas:
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í:
printf("%s ", textoExtraido[i]);
Saludos. ;D
-
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.
#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
-
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.
-
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
#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
-
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":
printf("%s ", textoExtraido[i]);
Saludos.
-
Ok, gracias por la corrección y de otra duda que me sacas, dejo el código nuevo.
#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