如何一次将输入限制为一个字符
C++ How to restrict input to one char at a time?
我有一个程序,它要求用户多次输入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()也可以在控制台上显示。
相关文章:
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使用动态分配将 char* 复制到另一个字符**
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 如何检查一个字符是否与字符数组中的另一个字符匹配?
- C++:使用另一个字符将一个字符大写
- 我可以得到一个字符 * 到一个 std::sregex_iterator 匹配 str() 吗?
- 使用连续分隔符和空最后一个字符进行拆分
- 如何比较文件中包含的下一个字符
- 如何检查字符串中的最后一个字符是否是某个字符并将其从字符串中删除?(C++)
- 如何从文本文件中一次读取一个字符
- 将一个字符替换为字符串中更多数量的字符,而不删除C++中的其他字母
- 读取输入后,输出丢失了一个字符
- 比较最后一个字符,不区分大小写(带谓词?
- 如果一个字符,比如说"9",我减去"0",我在结果上使用 is 数字,我是真还是假
- 为什么 std::istream::gcount 返回的字符比预期的多一个字符
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- 使用 char 将一个字符数组分配给另一个字符数组时出现奇怪的行为
- 在弦乐器中删除最后一个字符