限制只输入数字
Limit input to only numbers
这是我输入值的一部分,我想做的是只输入0-9,但是当我输入字母或任何无效的键时,他们的程序工作得很好,它要求重新输入。
无效输入,请重新输入:
然而,这次当我重新输入它时打印出来:[6.95324e-310 2 3 4 5]
下面是代码:int main()
{
int aSize=5;
double aArray[aSize];
double value;
for(int i=0;i<aSize;i++)
{
cout<<"enter value of slot"<<i+1<<": ";
cin>>value;
if(cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
cout<<"invalid input please re-enter: ";
cin>>value;
}
else
{
aArray[i] = value;
cout<<"value of aArray: "<<aArray[i];
}
试试这个:
for (int i = 0; i < aSize; i++)
{
cout << "enter value of slot" << i + 1 << ": ";
cin >> value;
while (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
cout << "invalid input please re-enter: ";
cin >> value;
}
aArray[i] = value;
cout << "value of aArray: " << aArray[i];
}
修复代码流,不是所有路径都支持
int main() {
int aSize=5;
double aArray[aSize];
double value;
for(int i=0;i<aSize;i++) {
cout<<"enter value of slot"<<i+1<<": ";
cin>>value;
// repeat handling of failure
while (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
cout<<"invalid input please re-enter: ";
// at this point we want to get back to fail
cin>>value;
}
aArray[i] = value;
cout<<"value of aArray: "<<aArray[i];
}
相关文章:
- 从C++中的数字输入动态创建矩阵
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- 非数字输入检查
- C++和 XAML - 来自文本框的数字输入
- 该代码不会在其中显示任何数字输入.如何使它显示任何输入
- 如何从数字输入文件中查找最大数字
- C++ 将数字输入数组并输出
- 无法从字符串获取数字输入
- 输入数字输入到if语句中
- C++数字输入的输入验证
- 来自单个数字输入的Arduino读取脉冲宽度频率和占空比
- 如何区分数字输入和字母输入
- 为什么我的程序取消了更多的数字输入
- C++:运行程序时出现分段错误(将文件中的数字输入数组)
- C++:使用for循环允许用户将数字输入到数组中
- C++ - 如何将空格分隔的数字输入数组
- _wtoi返回零:输入零或非数字输入
- 数字输入的输入验证
- 为什么我随机生成的数字输入都是零
- 我需要让一个数字输入的用户输出单个数字使用c++