Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion www.aprendoencasa.com.

El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor numérico por consola y multiplicar cada uno de los elementos del vector por dicho valor numérico, una vez realizado todos los procesos cerrar el archivo y liberar la memoria utilizada por el vector.



#include <stdio.h>
#include <stdlib.h>
int main()
{
    // Variables a utilizar
    int cuantos;
    int *Vector;
    FILE *fichero;
    int numero;
    int contador;
    // Crear array dinamico de memoria
    cuantos=10;
    Vector=(int *)malloc(sizeof(int)*cuantos);
    // leer archivo de datos y asignar los valores al array dinamico
    fichero=fopen("archivo.dat","rt");
    if(!fichero) {
        printf("\nError en la apertura del archivo archivo.dat. Compruebe que exista.");
        exit(1);
    }

    contador=0;
    while(!feof(fichero) && contador<10)
    {
        fscanf(fichero,"%d\n",&numero);
        Vector[contador]=numero;
        contador++;
    }
    // Cerrar archivo
    fclose(fichero);
    // pedir valor numerico
    printf("\nTeclee valor numerico ...: ");
    scanf(" %d",&numero);
    for(contador=0;contador<10;contador++) {
        Vector[contador]*=numero;
        printf("\n-> %d ",Vector[contador]);
    }
    // liberar memoria y salir del programa
    free(Vector);
    return 0;
}

Se ha de tener un archivo en la misma carpeta que el programa denominado “archivo.dat”, el cual ha de contener los valores numéricos que se quieren leer.

El resultado de la ejecución del programa ha de ser similar al que se muestra a continuación.