Salve a tutti sono un utente nuovo di questo forum e anche un novizio della programmazione in C++. Per imparare a gestire puntatori a record ho scritto questo codice molto semplice in allocazione statica (per farla breve tale codice mi dovrebbe permettere di inserire e stampare un vettore formato da alcuni dati anagrafici di una persona) :
Il codice viene compilato e l'esecuzione fila liscia finchè all'atto dell'inserimento dell'età non mi viene data tale possibilità; inoltre all'atto della stampa mi visualizza solo il campo nome con l'eccezzione della prima lettera che mi viene "mangiata". Qualcuno potrebbe aiutarmi? P.S: so l'esistenza della libreria "string.h" ma per ora vorrei evitare di usarla. Grazie mille a tutti per le rispostecodice:#include <cstdlib> #include <iostream> using namespace std; const int dim=100; typedef char stringa[dim]; //alias stringa di dimensione dim di tipo carattere //creazione struttura di tipo persona struct persona { stringa nome; stringa cognome; int eta; }; typedef persona p[dim]; int main(int argc, char *argv[]) { persona *punt=0; //dichiarazione puntatore ad elementi di tipo persona p v; // vettore di tipo persona int i,n; cout<<"inserire riempimento\n"; cin>>n; cout<<"inserire campi\n"; for(punt=v,i=0;i<n;i++,punt++) { cout<<"inserire nome\n"; cin.getline(punt->nome,dim+1); cin.ignore(); cout<<"inserire cognome\n"; cin.getline(punt->cognome,dim+1); cin.ignore(); cout<<"inserire eta'\n"; cin>>punt->eta; } cout<<"stampa vettore\n"; for(punt=v,i=0;i<n;i++,punt++) { cout<<punt->nome<<endl; cout<<punt->cognome<<endl; cout<<punt->eta<<endl; } system("PAUSE"); return EXIT_SUCCESS; }

Rispondi quotando