Escolar Documentos
Profissional Documentos
Cultura Documentos
Rafael Palacios
Prototipos
Este cdigo cumplen lo siguiente: Slo se muestra el mensaje de error en caso de error La pregunta se repite hasta que el valor sea correcto Slo hay un scanf (se minimiza la posibilidad de error de programacin)
pi[3]=7;
free(pi); }
Este cdigo cumplen lo siguiente: Slo se accede a la memoria si ha sido asignada correctamente. Si falla la asignacin, se da un mensaje de error y la memoria ni se utiliza ni se intenta liberar. La memoria se libera con free cuando ya no hace falta.
fprintf(fp,"Resultado=%f\n",res);
Este cdigo cumplen lo siguiente: Slo se accede al archivo si se ha abierto correctamente Si falla la apertura, se da un mensaje de error y el archivo ni se utiliza ni se intenta cerrar. El archivo se cierra con fclose al terminar
//variable para control de lectura //estructura con los campos necesarios //nmero de registros
Archivo Binario
Este cdigo cumplen lo siguiente: Slo incrementa el contador cuando se garantiza que la lectura ha funcionado El bucle termina tanto si falla la lectura o si se alcanza el final del archivo.
Archivo de texto
Este cdigo cumplen lo siguiente: Slo incrementa el contador cuando se garantiza que la lectura ha funcionado. El bucle termina tanto si falla la lectura como si se alcanza el final del archivo. Si falla la lectura de cualquiera de las tres variables, termina el bucle.
Asignacin a 2 punteros
(Estructura anloga a la apertura/cierre de 2 archivos)
p1=(int *)calloc(n, sizeof(int)); //asigno n elementos tipo int p2=(int *)calloc(m, sizeof(int)); if (p1==NULL || p2==NULL) {
p1[3]=7;
free(p1); free(p2); }
p1[3]=7;
pf1=fopen("origen.dat","rb"); //abro el archivo pf2=fopen("destino.dat","wb"); //abro el archivo if (fp1==NULL || fp2==NULL) { printf("Error al abrir algn archivo\n"); if (fp1!=NULL) fclose(fp1); //imposible que falle fclose if (fp2!=NULL) fclose(fp2); } else { do { Ejemplo de utilizacin ctrl=fread(&tmp,sizeof(tmp),1,fp1); de los ficheros if (ctrl==1) { fwrite(&tmp,sizeof(tmp),1,fp2); } } while (ctrl==1); fclose(fp1); fclose(fp1); }
PROTOTIPO
t_persona Leer1(void); void Leer2(t_persona *pp); //con control de error int Leer3(t_persona *pp); int LeerVec1(t_persona v[]);
void LeerVec2(t_persona v[],int n);
EJEMPLO DE LLAMADA
p=Leer(); Leer(&p); ctrl=Leer(&p);
PROTOTIPO
t_persona Leer1(FILE *f);
EJEMPLO DE LLAMADA
p=Leer(fp); //fp est abierto en
main