Autor Tema: C eof feof Leer datos de un fichero hasta final mostrar por consola CU00543F  (Leído 2990 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches. Dejo una posible solución del ejercicio CU00543F del curso lenguajeC desde cero.

Citar
EJERCICIO

En un archivo denominado miTexto.txt existen varias líneas de texto. Crear un programa que extraiga el contenido de las líneas hasta el final del archivo usando eof ó feof y las muestre por pantalla.

Ejemplo: si el contenido del archivo es el siguiente.

Cumpliendo con mi oficio

piedra con piedra, pluma a pluma,

pasa el invierno y deja

sitios abandonados.

 

El resultado de ejecución deberá ser el siguiente:

Linea 1 contiene: Cumpliendo con mi oficio

Linea 2 contiene: piedra con piedra, pluma a pluma,

Linea 3 contiene: pasa el invierno y deja
Linea 4 contiene: sitios abandonados.

 

Añade varias líneas más al archivo y comprueba que el programa las extrae todas.

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

int main() {
    char cadena[NUMELEMENTOS];
    int i=0;

    FILE*fichero;
    fichero = fopen("miTexto.txt","rt");
    while(!feof(fichero)){
        fgets(cadena,50,fichero);
        printf("La linea %d contiene: %s\n", i+1, cadena);
        i++;
    }

    fclose(fichero);

    return 0;
}

Contenido del fichero miTexto.txt:

Cumpliendo con mi oficio
piedra con piedra, pluma a pluma,
pasa el invierno y deja
sitios abandonados.

Gracias.
« Última modificación: 08 de Julio 2016, 18:57 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas veo el código ok el único problema lo tendrías si en una línea de texto tuvieras más de 50 caracteres ya que no te cabría en la longitud de cadena utilizada

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches, Ogramar.

Gracias por tu tiempo y por corregirme el ejercicio. Entonces, ¿debería declarar la variable cadena así: char cadena[]? Pero creo que le tendría que especificar un índice, ¿no?

Saludos.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Sí, hay que especificar índice o utilizar otro tipo de estructuras de datos más avanzadas

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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".