如何在不同的行中多次获得cin?

时间:2019-04-16 17:41:55

标签: c++ cin

我想使用一个字符串和另一个变量获取两次输入,但是它总是会出现编译错误,如何解决此问题。我已经尝试过cin.clear();但在这种情况下似乎不起作用。

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;
using std::getline;

int main(){
    string name;
    cout << "Please input a string." << endl;
    getline (cin, name);
    cout << "Hello, there, "<< name  <<".\n";
    char ccc;
    cout << "Please input a character." << endl;
    getline (cin, ccc);
    cout << "This is a alphabet:" << ccc << endl;
    return 0;
}

我希望输出如下:

Please input a string.
John
Hello, there, John.
Please input a character.
c
This is a alphabet:c

3 个答案:

答案 0 :(得分:2)

我以前使用过cin.ignore();。它应该清除缓冲区。而且char应该使用getchar而不是getline。

答案 1 :(得分:1)

没有getline()的版本接受char作为其第二个参数。相反,您可能想要接受char*的版本。您将需要修改代码以读取包含一个字符的字符串。

答案 2 :(得分:0)

在第二个尝试使用getchar()而不是getline()。