Está en la página 1de 6

El Operador sizeof.

Este operador determina el tamao de bytes de cualquier tipo de dato durante la compilacin del programa. Cuando se aplica al nombre de un arreglo el operador sizeof devuelve el nmero total de bytes del arreglo como un entero. Observe que, por lo general, las variables de tipo float se almacenan en 4 bytes de memoria, y que un arreglo se define para contener 20 elementos, por lo tanto el arreglo tendr un total de 80 bytes.

#include <stdio.h> size_t obtieneTamanio(float *ptr); main() { float arreglo[20]; printf("\n\nEL numero total de bytes en el arreglo (arreglo[20]) es: %d \n",sizeof(arreglo)); printf("\n\nEL numero de bytes debuelto por la funcion obtieneTamanio es: %d \n" ,obtieneTamanio(arreglo)); getchar(); return 0; } //devuelve el tamao de ptr size_t obtieneTamanio(float *ptr) { return sizeof(ptr); }

Observe que el tipo de retorno de la funcion obtiene tamao es size_t, el cual es un tipo definido por el C estndar como tipo entero del valor que devuelve el operador sizeof.

Indexando un apuntador.
#include <stdio.h> main() { int i[5]={1,2,3,4,5}; int *p,t; p=i; for(t=0; t<5; t++) printf("\n\n\t\t\t%d",p[t]); getchar(); return 0; }

Archivos.
fopen() : Abre una corriente. fclose() : Cierra una corrient. putc() : Escribe un carcter en una corriente. getc() : Lee un carcter desde una corriente. fseek() : Salta un byte especificado en una corriente. fprintf() : Es la corriente lo que un printf() a la consola. fscanf() : Es la corriente lo que un scanf() a la consola. ferror() : Devuelve verdad si ha ocurrido un error. feof() : devuelve verdad si se alcanza la marca EOF. remover() : Borra un archivo.

MODOS
"r" : abrir un archivo para lectura, el fichero debe existir. "w" : abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe. "a" : abrir un archivo para escritura al final del contenido, si no existe se crea. "r+" : abrir un archivo para lectura y escritura, el fichero debe existir. "w+" : crear un archivo para lectura y escritura, se crea si no existe o se sobreescribe si existe. "r+b rb+" : Abre un archivo en modo binario para actualizacin (lectura y escritura). "rb" : Abre un archivo en modo binario para lectura.

Funcion ferror( ) y Funcion rewind( ). La funcion ferror( ) determina si una operacin con archivos produce un error, el formato para declarar ferror( ), es: Int ferror((FILE)*fp);

La Funcion rewind( ). Esta funcion establecer el localizador de posicin de archivo al comienzo del que se especifique como argumento, el formato para declarar rewind( ), es : Void rewind(FILE *fp);

FORMATO PARA ARCHIVO. FILE *fopen(char *nombre del archivo, char *mode); Para crear archivo: FILE fopen(char *cadena.dat, char *w); o fopen(cadena.dat,w); Todos los archivos se manejan con apuntadores.

fread y fwrite.

Estas funciones nos permiten tratar con datos de cualquier tipo, incluso con estructuras. fwrite Nos permite escribir en un fichero. Esta funcin tiene el siguiente formato: size_t fwrite(void *buffer, size_t tamano, size_t numero, FILE *pfichero); buffer - variable que contiene los datos que vamos a escribir en el fichero.

tamano - el tamao del tipo de dato a escribir. Puede ser un int, un float, una estructura. Para conocer su tamao usamos el operador sizeof. numero - el nmero de datos a escribir. pfichero - El puntero al fichero sobre el que trabajamos.

Ejemplo: un programa de agenda que guarda el nombre, apellido y telfono de cada persona.

#include <stdio.h>

struct agenda{ char nombre[20]; char apellido[20]; char telefono[15]; }registro ; void main() { FILE *fichero; struct agenda registro;

fichero = fopen( "nombres.txt", "a" ); clrscr(); do { printf( "Nombre: " ); fflush(stdout); gets(registro.nombre); if (strcmp(registro.nombre,"")) { printf( "Apellido: " ); fflush(stdout); gets(registro.apellido); printf( "Telfono: " ); fflush(stdout); gets(registro.telefono); fwrite( &registro, sizeof(registro), 1, fichero ); } } while (strcmp(registro.nombre,"")!=0); fclose( fichero ); }

Fread

La funcin fread se utiliza para sacar informacin de un fichero. Su formato es: size_t fread(void *buffer, size_t tamano, size_t numero, FILE *pfichero); Siendo buffer la variable donde se van a escribir los datos ledos del fichero pfichero. El valor que devuelve la funcin indica el nmero de elementos de tamao 'tamano' que ha conseguido leer.

Ejemplo: #include <stdio.h>

struct agenda{ char nombre[20]; char apellido[20]; char telefono[15]; };

void main() { FILE *fichero; struct agenda registro; fichero = fopen( "nombres.txt", "r" ); clrscr(); while (!feof(fichero)) { if (fread( &registro, sizeof(registro), 1, fichero )) { printf( "Nombre: %s\n", registro.nombre ); printf( "Apellido: %s\n", registro.apellido); printf( "Telfono: %s\n", registro.telefono); } } getch(); fclose( fichero ); }

También podría gustarte