提问人:HCMUSer 提问时间:2/17/2023 更新时间:2/17/2023 访问量:46
如何在此代码中停止输入 - 输入未知大小的一维数组的代码
How to stop input in this code- a code to input an 1D array with unknown size
问:
我尝试这样做,但我不知道如何停止输入。我用输入一个带有整数元素的数组构建一个代码,当输入元素不是整数时,它将忽略。所以我无法阻止它。
do {
if(std::cin >> val) {
if(val == 0) break;
vec.push_back(val);
} else {
std::cin.clear();
std::cin.ignore(1,'\n');
}
} while(true);
我尝试输入 ctrl + x,z,d,但它不起作用。
答:
2赞
Serge Ballesta
2/17/2023
#1
您可以决定在文件末尾停止输入。当您从 true 文件读取时,或者在 Windows 或 Linux 上使用 or 时,会在文件的实际结束时引发该条件。您只需要在忽略任何有问题的输入之前对其进行测试:CtrlZF6CtrlD
do {
if(std::cin >> val) {
if(val == 0) break;
vec.push_back(val);
} else if (std::cin.eof()) {
break; // exit loop on eof
} else {
std::cin.clear(); // ignore any offending input up to end of line
std::cin.ignore(1,'\n');
}
} while(true);
评论
if(val == 0) break;
当您进入时,循环停止0