salve a tutti,non essendo molto bravo con il linguaggio c++ ho avuto dei problemi.
il mio problema e che nel while del main non so cosa mettere come condizione della stringa
codice:
#include <iostream>
#include <string.h>
using namespace std;
typedef struct lista_spesa{
char *nome_prodotto;
int quantita;
struct spesa *next;
}lista;
lista *aggiungi(lista *primo,char *nome,int q){
if(primo==NULL){
primo=new lista;
primo->nome_prodotto=new char[30];
primo->nome_prodotto=nome;
primo->quantita=q;
primo->next=NULL;
}else {
lista *p2;
p2=new lista;
p2->nome_prodotto=new char[30];
primo->nome_prodotto=nome;
p2->quantita=q;
p2->next=primo;
primo=p2;
}
return primo;
}
void stampa(lista *primo){
while(primo!=NULL){
cout<<"il nome del prodotto e' : "<<primo->nome_prodotto<<"\n"<<"la quantita e' : "<<primo->val<<"\n";
;
primo=primo->next;
}
}
int main(){
lista *primo=NULL;
int q;
char np[30];
cout<<"inserisci il nome del prodotto : "<<endl;
cin>>np;
cout<<"inserisci la quantita : "<<endl;
cin>>q;
while(q!=0){ /*nel while non riesco a capire cosa
mettere per far terminare l'inserimento di stringhe*/
primo=aggiungi(primo,np,q);
cout<<"inserisci il nome del prodotto : "<<endl;
cin>>np;
cout<<"inserisci la quantita : "<<endl;
cin>>q;
}
stampa(primo);
return 0;
}
anche perchè cosi mi stampa sempre lo stesso carattere(l'ultimo inserito).