我怎样才能阻止 cin 跳过一行?

How can I stop cin from skippping a line?

我试图制作一个程序,要求用户提供输入并给出带有已回答问题的输出。一切看起来都很好,只是 cin 跳过了我最后一个关于学校的问题。

这是原代码:

//this program fills my data in profile
    
#include <iostream>
#include <string>
    
using namespace std;

int main () {
    
    int age, exp_years;
    char desired_grade;
    string school_name, name; 
    const int year_grad = 4;
    bool is_student;
    
    cout << "You will need to enter your data for portfolio card" << endl;
    cout << "Enter your last name" << endl;
    cin >> name;
    cout << "Enter your age" << endl;
    cin >> age;
    cout << "Enter your years of work experience" << "\n";
    cin >> exp_years;
    cout << "Is it true or false that you are a student (put 'true' or 'false')" << endl;
    cin >> is_student;
    cout << "Great! What school are you in (if you are not a student put desirable school)?" << endl;
    cin >> school_name;
     
     /* trying to make a function below */   
    
    cout << "Awesome, here is your info" << endl << "Your last name is "<< name << endl <<"You are "<<age << " years old." << endl << exp_years << " years of work experience" << endl;
    if ( is_student == 1)
    {
        cout << school_name << " is lucky to have you!\n";
        return 0;
    } else {
        cout << "Btw I am sure that " << school_name << " would be happy to have you as their student anytime\n";
        return 0;
    }

    return 0;
}

我读了一些文章,他们说 getline() 可以提供帮助,所以我尝试用:

代替
cout << "Is it true or false that you are a student (put 'true' or 'false')" << endl;
getline(cin, is_student);
cout << "Great! What school are you in (if you are not a student put desirable school)?" << endl;
getline(cin, school_name);

然而,它给我一个错误:

error: no matching function for call to 'getline'

我错过了什么?

问题似乎与输入布尔值有关。

这里展示了如何输入布尔值

#include <iostream>
#include <iomanip>

int main()
{
    bool is_student;

    std::cin >> is_student;   // accepts 1 as true or 0 as false
    std::cout << is_student << '\n';

    std::cin >> std::boolalpha >> is_student;  // accepts strings false or true
    std::cout << is_student << '\n';
}