You are on page 1of 5

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

ARCHIVOS

El Almacenamiento de datos en estructuras de datos vistas anteriormente sólo se


generan temporalmente, es decir, cuando termina el programa los datos se
pierden. Para ello, una forma de no perderlos y recuperarlos aún cuando el
programa termine es con el manejo de Archivos.
C ve cada uno de los archivos simplemente como un grupo secuencial de bytes.
Cada archivo termina con un marcador de fin de archivo o un número de bytes
especificado registrado en una estructura de datos.
CASO: Se requiere almacenar datos de autos en un archivo y también se debe
mostrar los datos almacenados.

#include <iostream>

struct RegAuto {
char Placa[7];
char Marca[30];
char Modelo[30];
int Anio;
int Stock;
};

int menu( );
void crear(FILE *H);
void ingresar(FILE *H, RegAuto rAuto);
void mostrar(FILE *H, RegAuto rAuto);
void salir( );

using namespace std;

int main( ){
int opc;
char rpta;

RegAuto rAuto;
FILE *H;

Página 1 de 5
do {
system("cls");
opc=menu( );
switch (opc){
case 1: crear(H); break;

case 2: ingresar(H,rAuto); break;

case 3: mostrar(H, rAuto); break;

case 4: salir( );
}
if (opc!=4){
cout<<"Desea Continuar S/N ==> ";
cin>>rpta;
}
else
rpta='N';
}while (rpta=='S'||rpta=='s');

system("PAUSE");

int menu( ) {
int opcion;
cout<<"Mitsui Autos \n";
cout<<"Menu Principal \n";
cout<<"1. Crear Archivo Autos \n";
cout<<"2. Ingresar Nuevo Auto \n";
//Se puede incluir opción Buscar un rAuto
cout<<"3. Mostrar Relacion de Autos \n";
cout<<"4. Salir \n";
cout<<"Digite una opcion=> ";
cin>>opcion;
return opcion;
}

void crear(FILE *H){


H=fopen("c:Autos.txt","w");
if (H==NULL)
cout<<"No se puede abrir el archivo Autos \n";

Página 2 de 5
else {
cout<<"Creacion exitosa \n";
fclose(H);
}
}

void ingresar(FILE *H, RegAuto rAuto){


char temp[2];
cout<<"Ingreso de Nuevo Auto \n";
cout<<"Digite datos del Auto \n";
gets(temp);
cout<<"Placa : "; gets(rAuto.Placa);
cout<<"Marca : "; gets(rAuto.Marca);
cout<<"Modelo : "; gets(rAuto.Modelo);
cout<<"Anio : "; cin>>rAuto.Anio;
H=fopen("c:Autos.txt","a");
if (H!=NULL){
fwrite(&rAuto,sizeof(rAuto),1,H);
if (!ferror(H))
fclose(H);
else
cout<<"Error de escritura en archivo Autos \n";
}
else
cout<<"No se puede abrir el archivo Autos \n";
}

void mostrar(FILE *H, RegAuto rAuto){


int i;

cout<<"Mostrar los Autos del Archivo Autos \n" ;

H=fopen("c:Autos.txt","r");
if (H==NULL){
cout<<"No se puede abrir el archivo Autos \n";
system("pause");
exit(1);
}
cout<<"Datos del Auto \n";

while (!feof(H)){
fread(&rAuto,sizeof(rAuto),1,H);

Página 3 de 5
if (ferror(H)){
cout<<"Error de Lectura en archivo Autos \n";
system("pause");
exit(1);
}
if (!feof(H)) {
cout<<"Placa : "; cout<<rAuto.Placa<<"\n";
cout<<"Marca : "; cout<<rAuto.Marca<<"\n";
cout<<"Modelo: "; cout<<rAuto.Modelo<<"\n";
cout<<"Anio : "; cout<<rAuto.Anio<<"\n";
cout<<"====================================\n";
}
}
fclose(H);

void salir( ){
cout<<"GRACIAS POR USAR EL SISTEMA DE VENTA DE AUTOS \n";

Página 4 de 5
Página 5 de 5

You might also like