I'm learning struct
in C++ and I don't know how to make it not to jump over the first question.
If I'm using char in the struct
it will only copy me the first word, if I'm trying to use string it jumps over the first question (ignoring it).
Could you please guide me?
Later edit:
I use Microsoft Visual C++ 2010 express edition, and is there a difference between std::getline
and cin.getline
?
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
struct melodie{
char artist[50];
char titlu[50];
int an;
int lungime;
};
void main(){
int repetam;
double rezultat;
cout<<"Cate melodii veti introduce: ";
cin>>repetam;
melodie *pointer = new melodie[repetam];
for(int i = 0; i<repetam; i++){
cout<<endl;
cout<<"Introduceti artistul melodiei: ";
cin.get(pointer[i].artist);
cout<<"Introduceti titlul melodiei: ";
cin.getline(pointer[i].titlu);
cout<<"Introduceti anul melodiei: ";
cin>>pointer[i].an;
cout<<"Introuceti lungea melodiei (in secunde): ";
cin>>pointer[i].lungime;
}
cout<<"Lista melodiilor introduse este:"<<endl;
for(int i =0; i<repetam; i++){
cout<<"Artistul melodiei este: "<<pointer[i].artist<<endl
<<"Titlul melodiei este: "<<pointer[i].titlu<<endl
<<"Anul melodiei este: "<<pointer[i].an<<endl
<<"Lungimea melodiei (in secunde) este: "<<pointer[i].lungime<<endl;
cout<<endl;
}
cout<<"Melodiile care au aparut dupa anul 2000 si au lungimea mai mica de 180 de secunde sunt: "<<endl;
for(int i = 0;i<repetam; i++){
if(pointer[i].an>2000 && pointer[i].lungime<180){
cout<<"Artist: "<<pointer[i].artist
<<endl
<<"Titlul: "<<pointer[i].titlu<<endl<<endl;
}
}
getch();
}