Getline function sometimes runs badly i mean it's work useless for us so i can help you about getline's useless
/*****************************************************************************
using getline function/getline fonksiyonun istenildiği gibi kullanılması
******************************************************************************/
#include<string>
#include<iostream>
using namespace std;
void main(){
string film_name,country;
bool oscar;
int duration,number_of_actors;
double imdb_rating;
string getliner;
cout << "Please enter film's name : " << "\n";
cin.ignore(0,'\n'); //not read space and nextline character
getline(cin,film_name);
cout << "Please enter film's year : "<< endl;
cin >> year;
cout << "Please enter film's duration : "<< endl;
cin >> duration;
cout << "Please enter number of actors : "<< endl;
cin >> number_of_actors;
getline(cin,getliner);
cout << "Please enter film's country : "<< "\n";
cin.ignore(0,'\n'); //not read space and nextline character
getline(cin,country);
cout << "Does the film have Oscar 0 or 1 : "<< endl;
cin >> oscar;
cout << "Please enter imdb rating of the film : "<< endl;
cin >> imdb_rating;
getline(cin,getliner);
cout << "Film added" << endl;
cin.clear();
}
the program work as long as there is no loop.
ReplyDeletewhat of such case
#include
#include
#define nb 3
using namespace std;
struct book
{
string name;
string author;
float price;
};
int main()
{
book cpp[nb];
int i;
cout<<"This program capture books details and display all books\n";
cout<<"--------------------------------------------------------\n";
for(i=0;i>cpp[i].price ;
cin.clear();
cout<<endl<<endl;
}
cout<<" Book Details \n";
cout<<" -----------------------------------\n";
cout<<" Title Author Price \n";
cout<<" -----------------------------------\n";
for(i=0;i<nb;i++)
{
cout<<cpp[i].name<<" "<<cpp[i].author<<" "<<cpp[i].price <<endl;
}
system("pause");
return 0;
}
The program above work when a dummy variable is introduced to get rid of trailing newline character left by cin
ReplyDeletethis a sample
#include
#include
#define nb 2
using namespace std;
struct book
{
string name;
string author;
float price;
};
int main()
{
book cpp[nb];
string dummy;
int i;
cout<<"This program capture books details and display all books\n";
cout<<"--------------------------------------------------------\n";
for(i=0;i>cpp[i].price;
getline(cin,dummy);
cout<<endl<<endl;
}
cout<<" Book Details \n";
cout<<" -----------------------------------\n";
cout<<" Title Author Price \n";
cout<<" -----------------------------------\n";
for(i=0;i<nb;i++)
{
cout<<cpp[i].name<<" "<<cpp[i].author<<" "<<cpp[i].price <<endl;
}
system("pause");
return 0;
}
i think ,u should look again this line "for(i=0;i>cpp[i].price)". Something running wrongly like ">" or "<" if you rewrite code here clearly, i can help u better.
ReplyDelete