在c++中是否有一种方法可以将这种格式的输入限制为整数/双精度
Is there a way to restrict input to integer/double in this format in c++
我正在尝试用c++制作一个简单的计算器。在我的第一个版本中,我有一个基于菜单的系统,我要求输入一个接一个,所以很容易验证整数。然而,我意识到我可以让用户以你在真正的计算器上输入的格式输入他们的问题。
double first;
char choice;
double second;
cin >> first >> choice >> second;
然而现在我被困在我如何检查,因为我所看到的大多数解决方案遵循这种格式,我不知道我如何实现,因为我的cin需要3块数据。
int x;
cin >> x;
if (!cin)
{
// not a number
}
不能限制用户在终端上输入的内容。您能做的最好的事情是检测输入不合适,并再次请求输入。
while ( !(cin >> first) )
{
cout << "Please an enter a floating point number: "
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
对其他数字执行相同操作
来自<stdio.h>
或<cstdio>
的scanf()
函数使您可以更精细地控制您接受的输入类型。另一种选择是读入一行输入作为std::string
或char
缓冲区,然后解析该行以查看它是否是有效的输入。
相关文章:
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 如何检查程序员在C++中提供的两种不同格式的输入
- 如何为输入设置变量编号和__android_log_print格式
- 如何使用正则表达式将输入数字格式化为字符串
- 此功能希望从std :: istream解析该功能的输入格式
- 检查leandit输入是否具有正确的格式QT 5 C
- C++ 用户输入的字符串必须采用 DD-MM-YYYY 格式
- 如何提示用户在C++中输入正确的电子邮件地址格式
- 如何在 c++ 中从".in"格式的文件中获取输入?此代码进入无限循环,但适用于".txt"文件格式
- cvPreparePredictData中不支持的格式或格式组合(输入样本必须具有32fC1类型)
- (C )以Specfic格式从用户中获取输入
- 如何将GUI用户字符串输入转换为使用C++库函数的格式
- 使用boost::propertytree为我的代码输入文件格式
- push_back opencv中输入参数的格式不匹配
- windows CopyFile的正确输入格式是什么
- 以mm/dd/yyyy格式输入日期,并将其拆分为3个单独的变量
- 二维数组C++中的输入格式
- 如何将用户输入格式化为整洁的表格,以便在C++中输出
- C++窗口窗体:如何在文本框中控制用户输入格式