como se guarda informacion en el disco en c++???
Necesito que me ayuden a hacer un programa que guarde la informacion en visual c++(datos que yo introduzca ) y al reiniciar mi pc estos datos queden guardados y cuando yo vuelva a ejecutar el programa estos aparezcan.
gracias
gracias
Puedes grabarlo en un archivo en disco:
CFile Fichero;
long Variable1 = 1;
char Variable2[20];
strcpy(Variable2, "hola");
Fichero.Open("archivo.xxx", CFile:modeWrite | CFile:modeCreate)
Fichero.Write(&Variable1, sizeof(long));
Fichero.Write(&Variable2, 20);
Fichero.Close();
Cuando lo recuperes puedes usar esto:
CFile Fichero;
long Variable1;
char Variable2[20];
Fichero.Open("archivo.xxx", CFile:modeRead)
Fichero.Read(&Variable1, sizeof(long));
Fichero.Read(&Variable2, 20);
Fichero.Close();
CFile Fichero;
long Variable1 = 1;
char Variable2[20];
strcpy(Variable2, "hola");
Fichero.Open("archivo.xxx", CFile:modeWrite | CFile:modeCreate)
Fichero.Write(&Variable1, sizeof(long));
Fichero.Write(&Variable2, 20);
Fichero.Close();
Cuando lo recuperes puedes usar esto:
CFile Fichero;
long Variable1;
char Variable2[20];
Fichero.Open("archivo.xxx", CFile:modeRead)
Fichero.Read(&Variable1, sizeof(long));
Fichero.Read(&Variable2, 20);
Fichero.Close();
mira tengo este codigo:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct NODO nodo;
struct NODO
{
int dato1;
char nombre[10],escuela[10];
int fecha;
NODO *sig;
NODO * ant;
};
class lista
{
public:
NODO *base;
NODO *tope;
void crear();
void recorrer();
void borrar();
void insertar();
};
void lista::crear()
{
NODO *prim;
char cont='s';
int sw=0,dato;
char no[10],es[10];
int fe;
while(cont=='s')
{
if(sw==0)
{
prim = new NODO;
cout<<"Digite el codigo del estudiante: "<<endl;;
cin>>dato;
prim->dato1=dato;
cout<<"Digite el nombre: "<<endl;
cin>>no;
cout<<"Digite la escuela a la que pertenece: "<<endl;
cin>>es;
cout<<"Escriba la fecha en la cual el estudiante ingreso a la universidad (ano)"<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
prim->nombre[i]=no[i];
prim->escuela[i]=es[i];
prim->fecha=fe;
}
//-------------------------------------
prim->sig=NULL;
prim->ant=NULL;
base=prim;
tope=prim;
//-------------------------------------------------
sw=5;
}
else
{
prim = new NODO;
prim = new NODO;
cout<<"Digite el codigo del estudiante: "<<endl;;
cin>>dato;
prim->dato1=dato;
cout<<"Digite el nombre: "<<endl;
cin>>no;
cout<<"Digite la escuela a la que pertenece: "<<endl;
cin>>es;
cout<<"Escriba la fecha en la cual el estudiante ingreso a la universidad (ano)"<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
prim->nombre[i]=no[i];
prim->escuela[i]=es[i];
prim->fecha=fe;
}
//------------------------------------
prim->sig=NULL;
prim->sig=prim;
tope=prim;
//-----------
}
cout<<"Desea continuar-->";
cin>>cont;
}
}
void lista::recorrer()
{
int dato,fech;
char nomb[10],esc[10];
NODO *nuevo;
nuevo=base;
while(nuevo!=NULL)
{
dato=nuevo->dato1;
fech=nuevo->fecha;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<esc<<endl;
cout<<"El estudiante "<<nomb<<" ha ingresado en la fecha "<<fech<<endl;
//-----------------------------------
nuevo=nuevo->sig;
//-----------------------------
getche();
}
}
void lista::insertar()
{
int dato,fech,fe;
char op;
char nomb[10],es[10],esc[10];
char no[10];
//-------------------------------
NODO *nuevo,*insertar;
nuevo=base;
int a=0;
while((nuevo!=NULL)&&(a==0))
{
dato=nuevo->dato1;
fech=nuevo->fecha;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<fech<<endl;
cout<<"El estudiante "<<nomb<<" ha ingresado en la fecha "<<fech<<endl;
//-----------------------------------
cout<<"Desea insertar un nodo aca?"<<endl;
cin>>op;
if(op=='s')
{
insertar = new NODO;
cout<<"Digite el codigo del estudiante-->";
cin>>insertar->dato1;
cout<<"Digite el nombre del estudiante-->";
cin>>no;
cout<<"A que escuela pertenece? "<<endl;
cin>>es;
cout<<"En que fecha ingreso? "<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
insertar->nombre[i]=no[i];
insertar->escuela[i]=es[i];
insertar->fecha=fe;
}
///-------------------------------------
insertar->sig=nuevo->sig;
nuevo->sig=insertar;
a=1;
}
else
{
nuevo=nuevo->sig;
}
getche();
}
}
void lista::borrar()
{
int dato,fech;
char op;
char nomb[10],esc[10];
//--------------------------------------------
NODO *prim,*seg,*nuevo;
nuevo=base;
prim=base;
seg=base;
int a=0;
while((nuevo!=NULL)&&(a==0))
{
dato=nuevo->dato1;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
fech=nuevo->fecha;
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<esc<<endl;
cout<<"El estudiante "<<nomb<<" ingreso en la fecha: "<<fech<<endl;
//-----------------------------------
cout<<"Desea eleminar este nodo???"<<endl;
cin>>op;
if(op=='s')
{
prim->sig=nuevo->sig;
a=88;
}
//-----------------------------
else
{
prim=nuevo;
nuevo=nuevo->sig;
}
getche();
}
}
void main(void)
{
system ("CLS");
lista l;
int k=0;
while(k!=5)
{
cout<<"1. Crear nodos"<<endl;
cout<<"2. Recorrer nodos"<<endl;
cout<<"3. Insertar nodos"<<endl;
cout<<"4. Borrar nodos"<<endl;
cout<<"5. Salir"<<endl;
cin>>k;
if (k==1)
l.crear();
if (k==2)
l.recorrer();
if (k==3)
l.insertar();
if (k==4)
l.borrar();
}
}
quiero que cuando guarde la informacion de los nodos, esta quede en la memoria, y con lo que me mandaste no entiendo como hacerlo
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct NODO nodo;
struct NODO
{
int dato1;
char nombre[10],escuela[10];
int fecha;
NODO *sig;
NODO * ant;
};
class lista
{
public:
NODO *base;
NODO *tope;
void crear();
void recorrer();
void borrar();
void insertar();
};
void lista::crear()
{
NODO *prim;
char cont='s';
int sw=0,dato;
char no[10],es[10];
int fe;
while(cont=='s')
{
if(sw==0)
{
prim = new NODO;
cout<<"Digite el codigo del estudiante: "<<endl;;
cin>>dato;
prim->dato1=dato;
cout<<"Digite el nombre: "<<endl;
cin>>no;
cout<<"Digite la escuela a la que pertenece: "<<endl;
cin>>es;
cout<<"Escriba la fecha en la cual el estudiante ingreso a la universidad (ano)"<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
prim->nombre[i]=no[i];
prim->escuela[i]=es[i];
prim->fecha=fe;
}
//-------------------------------------
prim->sig=NULL;
prim->ant=NULL;
base=prim;
tope=prim;
//-------------------------------------------------
sw=5;
}
else
{
prim = new NODO;
prim = new NODO;
cout<<"Digite el codigo del estudiante: "<<endl;;
cin>>dato;
prim->dato1=dato;
cout<<"Digite el nombre: "<<endl;
cin>>no;
cout<<"Digite la escuela a la que pertenece: "<<endl;
cin>>es;
cout<<"Escriba la fecha en la cual el estudiante ingreso a la universidad (ano)"<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
prim->nombre[i]=no[i];
prim->escuela[i]=es[i];
prim->fecha=fe;
}
//------------------------------------
prim->sig=NULL;
prim->sig=prim;
tope=prim;
//-----------
}
cout<<"Desea continuar-->";
cin>>cont;
}
}
void lista::recorrer()
{
int dato,fech;
char nomb[10],esc[10];
NODO *nuevo;
nuevo=base;
while(nuevo!=NULL)
{
dato=nuevo->dato1;
fech=nuevo->fecha;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<esc<<endl;
cout<<"El estudiante "<<nomb<<" ha ingresado en la fecha "<<fech<<endl;
//-----------------------------------
nuevo=nuevo->sig;
//-----------------------------
getche();
}
}
void lista::insertar()
{
int dato,fech,fe;
char op;
char nomb[10],es[10],esc[10];
char no[10];
//-------------------------------
NODO *nuevo,*insertar;
nuevo=base;
int a=0;
while((nuevo!=NULL)&&(a==0))
{
dato=nuevo->dato1;
fech=nuevo->fecha;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<fech<<endl;
cout<<"El estudiante "<<nomb<<" ha ingresado en la fecha "<<fech<<endl;
//-----------------------------------
cout<<"Desea insertar un nodo aca?"<<endl;
cin>>op;
if(op=='s')
{
insertar = new NODO;
cout<<"Digite el codigo del estudiante-->";
cin>>insertar->dato1;
cout<<"Digite el nombre del estudiante-->";
cin>>no;
cout<<"A que escuela pertenece? "<<endl;
cin>>es;
cout<<"En que fecha ingreso? "<<endl;
cin>>fe;
for(int i=0;i<10;i++)
{
insertar->nombre[i]=no[i];
insertar->escuela[i]=es[i];
insertar->fecha=fe;
}
///-------------------------------------
insertar->sig=nuevo->sig;
nuevo->sig=insertar;
a=1;
}
else
{
nuevo=nuevo->sig;
}
getche();
}
}
void lista::borrar()
{
int dato,fech;
char op;
char nomb[10],esc[10];
//--------------------------------------------
NODO *prim,*seg,*nuevo;
nuevo=base;
prim=base;
seg=base;
int a=0;
while((nuevo!=NULL)&&(a==0))
{
dato=nuevo->dato1;
for(int i=0;i<10;i++)
{
nomb[i]=nuevo->nombre[i];
esc[i]=nuevo->escuela[i];
fech=nuevo->fecha;
}
cout<<"El codigo es ->>"<<dato<<endl;
cout<<"El nombre es ->>"<<nomb<<endl;
cout<<"La escuela a la que pertenece es: "<<esc<<endl;
cout<<"El estudiante "<<nomb<<" ingreso en la fecha: "<<fech<<endl;
//-----------------------------------
cout<<"Desea eleminar este nodo???"<<endl;
cin>>op;
if(op=='s')
{
prim->sig=nuevo->sig;
a=88;
}
//-----------------------------
else
{
prim=nuevo;
nuevo=nuevo->sig;
}
getche();
}
}
void main(void)
{
system ("CLS");
lista l;
int k=0;
while(k!=5)
{
cout<<"1. Crear nodos"<<endl;
cout<<"2. Recorrer nodos"<<endl;
cout<<"3. Insertar nodos"<<endl;
cout<<"4. Borrar nodos"<<endl;
cout<<"5. Salir"<<endl;
cin>>k;
if (k==1)
l.crear();
if (k==2)
l.recorrer();
if (k==3)
l.insertar();
if (k==4)
l.borrar();
}
}
quiero que cuando guarde la informacion de los nodos, esta quede en la memoria, y con lo que me mandaste no entiendo como hacerlo
