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: Dimitar Stefanov en 06 de Julio 2016, 22:04

Título: C eof feof Leer datos de un fichero hasta final mostrar por consola CU00543F
Publicado por: Dimitar Stefanov en 06 de Julio 2016, 22:04
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.
Título: Re:C eof feof Leer datos de un fichero hasta final mostrar por consola CU00543F
Publicado por: Ogramar en 08 de Julio 2016, 19:01
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
Título: Re:C eof feof Leer datos de un fichero hasta final mostrar por consola CU00543F
Publicado por: Dimitar Stefanov en 08 de Julio 2016, 21:48
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.
Título: Re:C eof feof Leer datos de un fichero hasta final mostrar por consola CU00543F
Publicado por: César Krall en 12 de Julio 2016, 18:18
Hola! Sí, hay que especificar índice o utilizar otro tipo de estructuras de datos más avanzadas

Saludos!