Leer numeros dentro de archivos dentro de una carpeta y mostrarlos en pantalla

Si eres principiante y tienes alguna consulta entra en este foro.
Responder
Mensaje
Autor
Asimov
Mensajes: 1
Registrado: 05/04/2019 7:06 am

Leer numeros dentro de archivos dentro de una carpeta y mostrarlos en pantalla

#1 Mensaje por Asimov » 05/04/2019 8:20 am

HOla,soy nuevo en esta comunidad,y estoy aprendiendo C,y necesito resolver el siguiente problema con C,ya intente de varias formas y no estoy seguro si es lo que me piden,hasta ahora use fopen ,fscanf etc pero quiero entender donde usar estos parametros de la funcion array_from_file :(int array[],
unsigned int max_size,const char *filepath),lo que supongo que en la funcion array_from_file es para el primer ejercicio y la funcion array_dump es para el segundo por los argumentos que tienen.

EXISTE UN DIRECTORIO LLAMADO input y dentro de el muchos archivos,con nombres diferentes ,y en cada archivo el array se representa con su size y luego cada uno de los
miembros.

por ejemplo el array = [1,2,3,4,5] es representado en el archivo como:

5
1 2 3 4 5

EJERCICIO 1:
Se pide que tu programa principal, lea el array dentro de cada uno de los archivos
dentro de input y que luego de leerlo imprima por pantalla su contenido de la siguiente forma:

[ 1, 2, 3, 4, 5]

El codigo lo debo ingresar donde dice TU CODIGO AQUI:

este es el main.c,donde debo agregar codigo :

Código: Seleccionar todo

/* First, the standard lib includes, alphabetically ordered */
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>


/* Maximum allowed length of the array */
#define MAX_SIZE 100000

void print_help(char *program_name) {
    /* Print the usage help of this program. */
    printf("Usage: %s <input file path>\n\n"
           "Sort an array given in a file in disk.\n"
           "\n"
           "The input file must have the following format:\n"
           " * The first line must contain only a positive integer,"
           " which is the length of the array.\n"
           " * The second line must contain the members of the array"
           " separated by one or more spaces. Each member must be an integer."
           "\n\n"
           "In other words, the file format is:\n"
           "<amount of array elements>\n"
           "<array elem 1> <array elem 2> ... <array elem N>\n\n",
           program_name);
}

char *parse_filepath(int argc, char *argv[]) {
    /* Parse the filepath given by command line argument. */
    char *result = NULL;

    if (argc < 2) {
        print_help(argv[0]);
        exit(EXIT_FAILURE);
    }

    result = argv[1];

    return (result);
}

unsigned int array_from_file(int array[],
           unsigned int max_size,
           const char *filepath) {
    //TU CODIGO AQUI!!!


}

void array_dump(int a[], unsigned int length) {
    //TU CODIGO AQUI!!!

}


int main(int argc, char *argv[]) {
    char *filepath = NULL;

    /* parse the filepath given in command line arguments */
    filepath = parse_filepath(argc, argv);
    
    /* create an array of MAX_SIZE elements */
    int array[MAX_SIZE];
    
    /* parse the file to fill the array and obtain the actual length */
    unsigned int length = array_from_file(array, MAX_SIZE, filepath);
    
    /*dumping the array*/
    array_dump(array, length);
    
    return (EXIT_SUCCESS);
}
para compilar usa:
gcc -Wall -Werror -Wextra -pedantic -std=c99 -o reader main.c


para correr el programa:
./reader input/archivo

donde archivo es alguno de los archivos que se encuentra dentro de input.

Cambiar el archivo input y ejecutar nuevamente
------------------------------------------------------------------------------------------------------------------------------------------
EJERCICIO 2:
Modificar main.c para que en lugar de leer el archivo input, lea cada uno de los miembros del
array por pantalla y luego los muestre en la misma.

LO QUE ENTIENDO ES QUE EN EL PRIMERO ME PIDEN QUE LEA EL DIRECTORIO INPUT Y DESPUES VALLA RECORRIENDO LOS ARCHIVOS Y DESPUES LOS ARRAYS DENTRO DE CADA UNO
Última edición por mollok el 05/04/2019 10:53 am, editado 1 vez en total.
Razón: Los códigos deben ir entre etiquetas 'code', botón </>

rrnum7
Mensajes: 2
Registrado: 02/04/2019 4:08 pm

Re: Leer numeros dentro de archivos dentro de una carpeta y mostrarlos en pantalla

#2 Mensaje por rrnum7 » 08/04/2019 3:10 pm

Lo que te están pidiendo en el primero, es que el programa abra el archivo que le pases como parámetro, lea el array que contiene, y lo imprima. Luego, vuelves a ejecutarlo, pasándole el nombre del siguiente archivo, y así sucesivamente. Las dos funciones son para ese mismo ejercicio: array_from_file debe leer el archivo y almacenar los datos en el array, y array_dump los debe mostrar por pantalla. Todo esto lo haces con las funciones que mencionaste: fopen, fscanf, etc.

Para el ejercicio 2 debes modificarlo para que ya no trabaje con archivos sino que te vaya pidiendo los elementos del array, los introduzcas con el teclado, y luego los muestre.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados