Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2012, 21:47
AmyB
 
Fecha de Ingreso: noviembre-2012
Mensajes: 4
Antigüedad: 12 años, 1 mes
Puntos: 0
Por que se me borran los datos del archivo.

Hola, tengo un problema con este código en c++ con el que estoy trabajando, ingresar al menú y digitar los datos se guardan en el archivo, pero si me salgo y vuelvo a entrar se borra lo que dígito en el archivo, soy nueva en esto y agradecería todo la ayuda que me pueden brindar.

Aquí esta lo que medio hice(hay unas cosas que le faltan pero se las quite para que no se haga mucho enredo) ;


#include <iostream>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <stdio.h>
#include <iomanip>


using namespace std;

struct _suministro // Estructura
{
char name[80];
char cod[80];
char Unidad[80];
char cantMinima[80];
char cantMaxima[80];
char cantActual[80];
// Demas datos
// suministro;

}suministro;



int main()
{
int op,opi;
ofstream f;

f.open("archivo.txt", ios::out);
if (!f.is_open())
{
cout << "ERROR: no se puede abrir el fichero para escribir" << endl;
return 0;
}


cout<<" MENU PRINCIPAL "<<endl;
cout<<" SUMINISTROS E INVENTARIOS "<<endl<<endl;


cout<<" 3-- LISTAR LOS REGISTROS DE SUMINISTROS "<<endl;
cin>>op;

switch(op){
case 1:{

cout<<" SUBMENU DE INGRESO "<<endl<<endl;
cout<<" 1-- SUMINISTROS QUE NO EXISTEN (NUEVOS)"<<endl;
cout<<" 2-- SUMINISTROS SOLICITADOS POR PEDIDOS (YA EXISTEN)"<<endl;


}
break;
case 2:{

}
break;
case 3:{
cout<<" 3-- LISTAR LOS REGISTROS DE SUMINISTROS "<<endl;
cout<<"1-introducir nuevos"<<endl;
cout<<"2-mostrar anteriores"<<endl;
cin>>opi;

if(opi==1)
{


cout<< "SUMINISTROS"<<endl<<endl;

cout<< "Dijite el nombre;"<<endl;
cin>>suministro.name;
f.write(suministro.name,80);


cout<<" Dijite el codigo"<<endl;
cin>> suministro.cod;
f.write(suministro.cod,80);




cout<<" Dijite la unidad"<<endl;
cin>>suministro.Unidad;
f.write(suministro.Unidad,80);

cout<<" Dijite la cantidad minima"<<endl;
cin>>suministro.cantMinima;
f.write(suministro.cantMinima,80);



cout<<" Dijite la cantidad maxima"<<endl;
cin>> suministro.cantMaxima;
f.write(suministro.cantMaxima,80);

cout<<" Dijite la cantidad Actual"<<endl;
cin>>suministro.cantActual;

f.write(suministro.cantActual,80);


f.close();

}

if(opi==2) {


cout<<suministro.name,80;
cout<<suministro.cod,80;
cout<<suministro.Unidad,80;
cout<<suministro.cantMinima,80;
cout<<suministro.cantMaxima,80;
cout<<suministro.cantActual,80;
f.close();

}


}

break;
case 4:{


}
break;
default: {

cout<<"opcion incorrecta"<<endl;
}
break;


};


return 0;
}