gpt4 book ai didi

c++ - 如何只接受 'cin' 中的数字(C++ 编程)?

转载 作者:行者123 更新时间:2023-11-28 05:17:10 25 4
gpt4 key购买 nike

<分区>

我有以下代码:

#include <iostream>
#include <limits>
#include <locale>

using namespace std;

int main(int argc, char** argv) {

setlocale(LC_ALL, "English");

int i, vetor[16];
for(i = 0; i < 16; i ++) {
cout << "Input the position: [" << i << "]: ";
cin >> vetor[i];
if(cin.fail()) {
cin.clear();
cin.ignore(numeric_limits < streamsize > ::max(), '\n');
cout << "Please, input only numbers." << endl;
i --;
continue;
}

if(vetor[i] <= 0) {
cout << "Insert a non-zero value." << endl;
i --;
continue;
}
}
cout << vetor[0];

return 0;
}

我只需要接受数字。当我运行它并插入 "1"(或任何其他数字)时,它会转到以下位置,这是正确的。当我输入 "a" 时,它显示错误并警告我只输入数字,什么也是正确的。如果我输入 "a1",同样的事情发生,正确的是什么。但是当我输入 "1a" 时,它向我显示了警告,但是代码继续到下一个位置,并且当它用 cout 命令执行最后一行时return,它告诉我值是"1",不是"1a",因为变量的类型是int 我相信。

谁能告诉我为什么会这样?我只需要接受数字,"1a" 不是数字。当我输入 "1a" 时,我该如何过滤它?如果我输入 "a" 时发生同样的事情,我该怎么办?

我使用 DevC++ 5.11。

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