如何一次将输入限制为一个字符

C++ How to restrict input to one char at a time?

本文关键字:一个 字符 何一次 输入      更新时间:2023-10-16

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

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

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 y u(包括字母之间的空格)将使程序将t输入变量a, y输入变量b, u输入变量c。本质上,它会"失败"并自动为cin输入值,而不是要求用户为每个值输入值。

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

我试过使用cin.good(),但是它在为cin>> a输入多个字符后返回0;我也试过使用cin.get(a);然后检查cin。good()。如果用户输入多个字符,也返回0。

是否有一种方法来限制输入一次只能为一个cin操作工作?

您应该逐行阅读输入,然后解析它。因此

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

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

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

相关文章: