Tema: ayuda!!!!
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/01/2011, 16:16
nandomagic
 
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda!!!!

he cambiado el codigo y ya esta solucionado...(: os subo el codigo por si a alguien le interesa.
#include <iostream>
#include <fstream>
using namespace std;
struct fotocopiadoras {
string nombre;
int cantidad;
};
const int MAX=100;
typedef fotocopiadoras vector[MAX];
void programa(vector, int&);//prototipo

int main (){
ifstream f;
ofstream p;
vector tienda ;
int cont= 0;
int i=0;
f.open("stock.txt");
if(!f) // comprueba si habre el fichero.
cout <<"Error al abrir fichero\n";
else {
while (!f.eof() && cont<MAX){
getline(f, tienda[cont].nombre);
f >> tienda[cont].cantidad; //carga el fichero
f.ignore();
if(!f.eof())
cont ++;
}
programa(tienda, cont); //parametro real
}
f.close();
p.open("stock.txt",ios::app); // se sobre escribe para almacenar los modelos nuevos.
for (i=0; i<cont; i++){
p<<tienda[i].nombre<<endl;
p<<tienda[i].cantidad<<endl;
}
p.close();


system ("PAUSE");
return (0);
}
void programa(vector tienda, int& cont){//parametro formal
string tipo, nombre1;
int i,opcion,cantidad1, variable=0;
bool no_se_encuentra=true;



do{

cout<<"///////////////////////////////////////////////////"<<endl;
cout<<"//(1) para obtener la cantidad de fotocopiadoras//"<<endl;
cout<<"//(2) para nuevo modelo //"<<endl;
cout<<"//(3) para cerrar el fichero //"<<endl;
cout<<"///////////////////////////////////////////////////"<<endl;
cin>>opcion;



switch(opcion){
case 1:
no_se_encuentra=true;
cout<<"introduce el nombre del modelo"<<endl;
cin.ignore();
getline(cin,tipo);
for(i=0; i<cont; i++){// buscamos en el vector
if(tipo==tienda[i].nombre){
variable=i;
cout<<"la cantidad de fotocopiadoras es: "<<tienda[variable].cantidad<<endl;
no_se_encuentra=false;
}
}
if(no_se_encuentra == true)
cout << "No se ha encontrado la impresora"<<endl;
break;
case 2:
cout<<"introduce modelo nuevo"<<endl;
cin>>nombre1;
cout<<"introduce la cantidad"<<endl;
cin>>cantidad1;


tienda[cont].nombre=nombre1;
tienda[cont].cantidad=cantidad1;
cont ++;

break;
}

}
while(opcion!=3);
}