gpt4 book ai didi

c++ - C/C++,如何在等待用户输入 int 、 float 或其他任何内容时拒绝输入 char/string?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:19 25 4
gpt4 key购买 nike

初学者问题!

如何强制用户只输入数字(int、float、long..),这样他在等待数字时不能输入字符或字符串 :D 谢谢

最佳答案

一般来说,输入验证可以通过两种不同的方式完成:

  1. 在用户输入他的输入之后验证输入,并显示适当的消息,同时要求用户重新输入有效输入。
  2. 保留一个状态机 (FSM),它知道在特定点期望哪种输入格式。当用户要输入特定字符时,系统会检查这些字符是否符合当前状态的规则。

第一个解决方案很容易做到,因为您可以检查特定字段的输入操作:

std::istream& is = <reference to any valid input stream>;

double value;
if(!(is >> value)) {
// Issue error message
}

第二个解决方案需要在输入字符时查看字符,并立即检查是否成为输入的一部分(并在 tty 回显)。这不可能以一种简单的、独立于操作系统的方式实现。
尽管有可用的技术,但这些技术使您能够根据当前解析器 FSM 状态限制来自 std::cin 的字符输入。检查this post有关如何实现这一目标的更多信息。

关于c++ - C/C++,如何在等待用户输入 int 、 float 或其他任何内容时拒绝输入 char/string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22519026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com