#include <iostream>
#include <string>
using namespace std;
int main () {
string str;
int age;
cout << "Please enter age: ";
cin>>age;
cout << "Please enter full name: ";
getline (cin,str);
cout << "Thank you, " << str << ".\n";
}
Why function getline() not work when I using uperator >> to input integer ? What is better use for int input ?
You still have a newline in the stream after
cin>>age;, which is giving you an empty string for the name.You could solve it by just adding another
getline()call after getting the age and throwing away the result. Another options is to callcin.ignore(BIG_NUMBER, '\n');, whereBIG_NUMBERis MAX_INT or something.