cianux
25-09-2011, 12:42
salve a tutti..
sto facendo un programma di gestione magazzino.
il programma prende in apertura da file .txt gli elementi già esistenti in magazzino.
nel momento in cui faccio la ricerca di un elemento,senza inserirne di nuovi, mi dice che nn lo trova.
se invece nella stessa esecuzione inserisco un nuovo elemento, in quel caso lo trova...
questo è il modulo di ricerca...
i campi sono 3 ma la ricerca viene effettuata solo sul modello
void chitarre::ricerca(chitarre *ptr)
{
char key[50]; //parola chiave
cout<<"digita la chiave di ricerca: \n";
gets(key);
fflush(stdin);
if(strcmp(key,ptr->modello)) //strcmp torna sul ramo di falso
{if(strcmp(key,"chitarre.txt");
cout<<"non trovato\n\n";
}
else
{cout<<"trovato\n";
cout<<"la chitarre cercata \212: \n";
cout<<"modello: \n"<<ptr->modello<<"\n\n";
cout<<"costo: \n"<<ptr->costo<<" euro\n\n";
cout<<"caratteristiche:\n"<<ptr->caratteristiche<<"\n\n";
}}
nel main la funzione chiamante è:
temp=pointer; //temp punta alla posizione iniziale
temp->show(temp); //chiamata di show()
cout<<"\n";
peraltro suppongo sia un problema di puntatori, perchè ho fatto alcuni controlli
per vedere dove puntassero..
sto facendo un programma di gestione magazzino.
il programma prende in apertura da file .txt gli elementi già esistenti in magazzino.
nel momento in cui faccio la ricerca di un elemento,senza inserirne di nuovi, mi dice che nn lo trova.
se invece nella stessa esecuzione inserisco un nuovo elemento, in quel caso lo trova...
questo è il modulo di ricerca...
i campi sono 3 ma la ricerca viene effettuata solo sul modello
void chitarre::ricerca(chitarre *ptr)
{
char key[50]; //parola chiave
cout<<"digita la chiave di ricerca: \n";
gets(key);
fflush(stdin);
if(strcmp(key,ptr->modello)) //strcmp torna sul ramo di falso
{if(strcmp(key,"chitarre.txt");
cout<<"non trovato\n\n";
}
else
{cout<<"trovato\n";
cout<<"la chitarre cercata \212: \n";
cout<<"modello: \n"<<ptr->modello<<"\n\n";
cout<<"costo: \n"<<ptr->costo<<" euro\n\n";
cout<<"caratteristiche:\n"<<ptr->caratteristiche<<"\n\n";
}}
nel main la funzione chiamante è:
temp=pointer; //temp punta alla posizione iniziale
temp->show(temp); //chiamata di show()
cout<<"\n";
peraltro suppongo sia un problema di puntatori, perchè ho fatto alcuni controlli
per vedere dove puntassero..