我想使用一个字符串和另一个变量获取两次输入,但是它总是会出现编译错误,如何解决此问题。我已经尝试过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
答案 0 :(得分:2)
我以前使用过cin.ignore();
。它应该清除缓冲区。而且char应该使用getchar而不是getline。
答案 1 :(得分:1)
没有getline()
的版本接受char
作为其第二个参数。相反,您可能想要接受char*
的版本。您将需要修改代码以读取包含一个字符的字符串。
答案 2 :(得分:0)
在第二个尝试使用getchar()而不是getline()。