[ create a new paste ] login | about

Link: http://codepad.org/g7W5RPkq    [ raw code | fork ]

C, pasted on Feb 25:
    #include <stdio.h>
    #include <stdlib.h>
     
     
    int main (){
        int array[30] = {10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39};
        int n, i;
        //4 punteros a file. Nos viene bien para trabajar con bucles y hacer mas pequeño el código XD
        FILE *f[4];
       
        //abrimos el fichero que vamos a leer
        if ( (f[0] = fopen( "fichero.dat", "w+b" )) == 0 ){ // atento a los modos de apertura W+b destruye el anterior archivo al sobreescribirlo. La b es de binario y la plus(+) añade la opcion de lectura, pero al escribir debemos volver al principio con rewind() o fseek()
            printf ("fichero.dat no se abrio");
        }
        //guardare los enteros de arriba en el archivo binario del contrario no hay nada que leer. XD
        fwrite(array, sizeof(array[0]), 30, f[0]);
       
       
        char archivo[12];
        char indice = '1';
       
        //volvemos a poner el puntero al inicio
        rewind(f[0]);
        for ( i = 1; i < 4; i++ ) {
            //leemos 10 enteros desde el primer fichero
            fread ( array, sizeof ( array[0] ), 10, f[0] );
           
            //preparamos el txto que va tener cada fichero
            sprintf (archivo,"%s%c%s", "archal", indice++, ".dat" ); //sprintf funciona como printf pero envia el texto a una cadena de caracteres en vez de la pantalla. junta 3 cosas en una sola cadena que será el nombre de los 3 archivos.
           
            //abrimos el fichero con el nombre que montamos con sprintf
            if ( ( f[i] = fopen ( archivo, "w+b" ) ) == 0 ) {
                printf ( "archal%d.dat no se abrio", i+48 );
            }
           
            //guardamos el texto en elfichero
            fwrite ( array, sizeof ( array[0] ), 10, f[i] );
        }
       
        //La prueba de que estan aqui:
        for ( i = 1; i < 4; i++ ){
            rewind(f[i]); //volvemos los punteros  de cada archivo al principio antes de leer
            fread(array, sizeof( array[0] ), 10, f[i]); //leemos 10 enteros de cada un de los nuevos ficheros que creamos
           
            //Imprimimos
            n = 0;
            printf("Archivo %d: %d", i, array[n]);
            for (n++; n < 10; n++ ){
                printf(", %d", array[n]);
            }
            printf("\n\n");
        }    
     
        //cerramos todos los archivos abiertos XD
        fclose(f[0]);
        fclose(f[1]);
        fclose(f[2]);
        fclose(f[3]);
     
        // ya ta ¬(°_o)/¯
        getchar();
        return 0;
    }


Create a new paste based on this one


Comments: