ragazzi vorrei chiedervi delle spiegazioni su questonon posto tutto il codice altrimenti diventa infinito)
codice:
bool Cerca_Prodotto(const Magazzino M, const int n, const char * C, int & pos){
bool trovato=false;
int i=0;
pos=-1;
cout <<"Trovato intermedio: "<<trovato<<endl;
cout <<"i vale: "<<i<<endl;
while(i<n && !trovato)
if(!strcmp(M[i].Codice,C)) {
cout <<"Trovato prima: "<<trovato<<endl;
pos=i;
trovato=true;
cout <<"Trovato dopo: "<<trovato<<endl;
}
else i++;
return trovato;
}
questo il main.cpp
codice:
#include <cstdlib>
#include <iostream>
#include "Prodotti1.h"
using namespace std;
int main(int argc, char *argv[])
{
// Test delle funzioni sul tipo prodotto
Prodotto P1;
Inserisci_DatiProdotto(P1);
Visualizza_DatiProdotto(P1);
// ********** FINE *********************
// Inizio programma
Magazzino M;
int n;
// PARTE 1
Crea_Magazzino(M,n);
Visualizza_Magazzino(M,n);
system("PAUSE");
// PARTE 2
char C[DIM];
int pos=-1;
cout << "\n Ricerca Prodotto.";
cout << "\n Inserire il Codice: ";
cin.ignore();
cin.getline(C,DIM);
if(Cerca_Prodotto(M,n,C,pos)) cout << "\n Prodotto presente. Posizione: " << pos;
else cout << "\n Prodotto NON presente." ;
system("PAUSE");
vorrei sapere nella specifica della funzione Cerca_Prodotto, !trovato che significa(io penserei trovato==false) e perchè usa !strcmp per fare il confronto, cioè lui dovrebbe fare il confronto se strcmp torna 0 dovrebbe entrare nel ciclo if, ho molti dubbi nel capirlo.
Aspetto il vostro aiuto. Grazie