ciao a tutti!
allora io ha scritto queste righe di codice:
#include <iostream.h>
#include <string.h>
typedef char stringa[30];
struct abbonati{
char* nominativo;
stringa indirizzo;
stringa num_tel;
};
int main()
{
abbonati* p= new abbonati;
char nome[50];
cout<<"Inserisci il nome dell'abbonato\n";
cin.get(nome,50);
p->nominativo=new char [strlen(nome)+1];
strcpy(p->nominativo, nome);
cout<<"Inserisci l'indirizzo dell'abbonato:\n";
gets(p->indirizzo);
cout<<"Inserisci il numero di telefono dell'abbonato:\n";
gets(p->num_tel);
cout<<"L'utente appena registrato e':\n"
<<"Nome:\t"<<p->nominativo<<"\n"
<<"Indirizzo\t"<<p->indirizzo<<"\n"
<<"Numero di telefono:\t"<<p->num_tel<<endl;
system("pause");
return 0;
}
Non mi da errori, solo che nella finestra di output mi salta il gets(p->indirizzo) nel senso che mi chiede "Inserisci indirizzo" e poi subito salta a "inserisci numero telefonico".
Perchè? cosa ho sbagliato?
mi sono appena accorta che se invece faccio cosi:
typedef char stringa[30];
struct abbonati{
stringa nominativo;
stringa indirizzo;
stringa num_tel;
};
int main()
{
abbonati* p= new abbonati;
cout<<"Inserisci il nome dell'abbonato\n";
gets(p->nominativo);
cout<<"Inserisci l'indirizzo dell'abbonato:\n";
gets(p->indirizzo);
cout<<"Inserisci il numero di telefono dell'abbonato:\n";
gets(p->num_tel);
cout<<"L'utente appena registrato e':\n"
<<"Nome:\t"<<p->nominativo<<"\n"
<<"Indirizzo\t"<<p->indirizzo<<"\n"
<<"Numero di telefono:\t"<<p->num_tel<<endl;
system("pause");
return 0;
}
va una meraviglia!solo che l'esercizio chiede esplicitamente di allocare dinamicamente anche la stringa nominativo.
Grazie a tutti
Nereide