Salve,
sono uno studente alle prime armi con c++
ho un problema riguardante un programma di memorizzazione dati di una videoteca:
quando inserisco il titolo (cin>>)o il nome della regia se e' presente uno spazio " " dopo aver premuto enter.
il programma conclude. Qualcuno mi sa spiegare perche' e come risolvere il problema?
Grazie
#include <iostream>
#include <string>
using namespace std;
const short MAXTITEL=30; //maximale länge titel
const short MAXREGIE=20; //maximale länge regie
const short MAXVIDEO=3; //maximale länge video
struct datum //definisco la struttura del giorno
{
int tag;
int monat;
int jahr;
};
struct video //definisco la struttura del video
{
int id;
char titel[MAXTITEL];
char regie[MAXREGIE];
datum edatum; //con edatum richiamo la struttura datum
int preise;
}videotot[MAXVIDEO]; //definisco un array secondo il numero massimo di video
void videoerfassen(video &movie) //funzione con variabile video e indirizzo &movie
{
cout<< "neue video erfassen"<<endl;
cout<< "id eingeben"<<endl;
cin>> movie.id; //scrivo il testo nell'integer id nell'indirizzo movie
cout<< "titel eingeben"<<endl; //all'interno della struttura video nella casella 0
cin>> movie.titel; //dell'array videotot
cout<< "regie eingeben"<<endl;
cin>> movie.regie;
cout<< "datum eingeben:TT/MM/JJ"<<endl;
cout<<"TT:";
cin>> movie.edatum.tag;
cout<<"MM:";
cin>> movie.edatum.monat;
cout<<"jjjj:";
cin>> movie.edatum.jahr;
cout<< "preise eingeben"<<endl;
cin>> movie.preise;
return;
}
void videoanzeigen(video ciao) //definisco la funzione videoanzeigen
{
cout<<"*****************************"<<endl;
cout<< "id:" << ciao.id<<endl; //stampo l'integer id presente nella struttura
cout<< "titel:" << ciao.titel<<endl; //video nell'array videotot
cout<< "regie:" << ciao.regie<<endl;
cout<< "datum:" << ciao.edatum.tag<<"/";
cout<< ciao.edatum.monat<<"/";
cout<< ciao.edatum.jahr<<endl;
cout<< "preise:"<<ciao.preise<<endl;
}
int main()
{
int i,s,j=0;
for (i=0;i<MAXVIDEO;i++)
{
videoerfassen(videotot[i]);
if(videotot[i].edatum.jahr>1988)
{
j++;
}
}
for (s=0;s<MAXVIDEO;s++)
{
videoanzeigen(videotot[s]);
cout<<endl;
}
cout<<"n."<<j<<" video nach jahr 1988";
}