Вы находитесь на странице: 1из 15

Archivos

Ing. Manuel Castaeda


Archivos
Concepto lgico que permite almacenar informacin
de modo permanente y acceder y/o alterar la misma
cuando sea necesario

Archivo
Para abrir un archivo secuencial se establece un rea
de buffer en memoria principal, en donde la
informacin se almacena temporalmente mientras se
transfiere de memoria principal a secundaria.



Archivo
Para abrir un archivo se realiza lo siguiente:

1. Declarar un apuntador de tipo FILE.
2. Abrir el archivo utilizando la funcin fopen y
asignndole el resultado de la funcin a nuestro
apuntador.



Archivo
Ej.

FILE *ap;

ap=fopen(nombre_archivo, tipo_archivo);



Archivo
Los archivos se pueden abrir en los siguientes modos:

r Abre un archivo para lectura, el archivo debe
existir.

w Abre un archivo para escritura, se crea si no
existe, si existe se sobre escribe.

a Abre un archivo para escritura al final del
contenido, si no existe se crea
Archivo
Los archivos se pueden abrir en los siguientes modos:

r+ Abre un archivo para lectura y escritura, el archivo
debe existir.

w+ Abre un archivo para lectura y escritura, se crea
si no existe, si existe se sobre escribe.

a+ Abre un archivo para lectura y escritura al final
del contenido, si no existe se crea
Ejemplo de apertura de
archivo
#include<stdio.h>
#include<stdlib.h>

main(){
char c;
FILE *ap;
ap=fopen("texto.txt","r");

if(ap==NULL)
printf("No se puede abrir el archivo\n");

else{
printf("EL archivo se abrio correctamente\n");
while(feof(ap)==0){
c=fgetc(ap);
printf("\n%c",c);
}
}
fclose(ap);
system("PAUSE");
}
Archivo
feof

Indica cuando se ha llegado al final del archivo,
siempre devolver cero (falso) si no es encontrado el
final del archivo, de lo contrario regresara un valor
distinto de cero (verdadero)
fgetc
Funciones de lectura
fgetc lee carcter por
caracter
fgetc(apuntador_archiv
o)


#include<stdio.h>
#include<stdlib.h>

main(){
char c;
FILE *ap;
ap=fopen("texto.txt","r");

if(ap==NULL)
printf("No se puede abrir el
archivo\n");

else{
printf("EL archivo se abrio
correctamente\n");
while(feof(ap)==0){
c=fgetc(ap);
printf("\n%c",c);
}
}
fclose(ap);
system("PAUSE");
}




fgets
fgets lee cadenas de
caracteres hasta n-1 o hasta
que encuentra un retorno de
carro (\n)
fgets(cadena,tamao_caden
a,ap_archivo)


#include<stdio.h>
#include<stdlib.h>

main(){
char c[100];
FILE *ap;
ap=fopen("texto.txt","r");

if(ap==NULL)
printf("No se puede abrir
el archivo\n");

else{
printf("EL archivo se
abrio correctamente\n");
while(feof(ap)==0){
fgets(c,"%s",ap);
printf("\n%s",c);
}
}
fclose(ap);
system("PAUSE");
}
fscanf
fscanf Funciona igual que
scanf, solamente la entrada es
un archivo y no el teclado.

#include<stdio.h>
#include<stdlib.h>

main(){
char c[100];
FILE *ap;
ap=fopen("texto.txt","r");

if(ap==NULL)
printf("No se puede abrir el
archivo\n");

else{
printf("EL archivo se abrio
correctamente\n");
while(feof(ap)==0){
fscanf(ap,"%s",c);
printf("\n%s",c);
}
}
fclose(ap);
system("PAUSE");
}
Funciones de escritura
fputc
fputc escribe carcter por
caracter
fputc(cadena,apuntador_ar
chivo)


#include<stdio.h>
#include<stdlib.h>

main(){
char c;
FILE *ap;

ap=fopen("texto3.txt","w");

if(ap==NULL)
printf("No se puede abrir
el archivo\n");

else{
printf("Introduce
untexto al archivo\n");

while((c=getchar())!='\n'){
fputc(c,ap);
}
}
fclose(ap);
system("PAUSE");
}


fputs
fputs escribe cadenas de
caracteres
fgets(cadena,tamao_cadena,
ap_archivo)

#include<stdio.h>
#include<stdlib.h>

main(){
char c[100];
FILE *ap;
ap=fopen("texto3.txt","w");

if(ap==NULL)
printf("No se puede abrir el
archivo\n");

else{
printf("Introduce untexto al
archivo\n");
fflush(stdin);
gets(c);
fputs(c,ap);
}
fclose(ap);
system("PAUSE");
}

fprintf
fprintf Funciona igual que
printf, solamente que la salida
es un archivo y no la pantalla.

#include<stdio.h>
#include<stdlib.h>

main(){
char c[100];
FILE *ap;
ap=fopen("texto3.txt","w");

if(ap==NULL)
printf("No se puede abrir el
archivo\n");

else{
printf("Introduce untexto al
archivo\n");
fflush(stdin);
gets(c);
fprintf(ap,"%s",c);
}
fclose(ap);
system("PAUSE");
}