C ++如何一次限制一个char的输入?

时间:2013-03-22 16:51:11

标签: c++ input

我有一个程序要求用户多次输入输入,并将输入存储在不同的char变量中,然后对这些变量执行操作。

我的问题是我想限制输入一次为一个变量工作。 例如:

char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin  >> a; 
cout << "\nEnter b ";
cin  >> b;
cout << "\nEnter c ";
cin  >> c;

cout << "Entered chars were " << a << ", " << b << ", " << c;

运行它,如果用户输入你(包括字母之间的空格)将使程序输入t变量a,y输入变量b,u输入变量c。从本质上讲,它会“掉头”并自动为cin设置值,而不是要求用户为每个人执行此操作。

我想要的是检查用户为变量a输入的内容仅为1个字符。

我尝试过使用cin.good(),但在为cin&gt;&gt;输入多个字符后返回0一个; 我也尝试过使用cin.get(a);然后检查cin.good()。如果用户输入多个字符,这也会返回0。

有没有办法限制输入一次仅用于一个cin操作?

2 个答案:

答案 0 :(得分:8)

您应该逐行读取输入,然后解析它。就这样

std::cout << "Enter a:\n";
std::string input;
std::getline(std::cin, input);
if(input.length() != 1)
   //error
else
   char a = input[0];

答案 1 :(得分:0)

来自C语言。你可以使用getch();一次只能拿一个字符。

如果你想要多个字符,我的意思是字符串。你用getch();在循环中。 getch()来自conio.h,getche()也可以在控制台上显示。