Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在跳过循环时 while(9876) { 猜不到; }_C++_C++11 - Fatal编程技术网

C++ 在跳过循环时 while(9876) { 猜不到; }

C++ 在跳过循环时 while(9876) { 猜不到; },c++,c++11,C++,C++11,输出垃圾邮件“无效”,使我没有时间输入新的猜测。如何使其暂停?您需要筛选数值(请参阅): #包括 #包括 使用名称空间std; int main(){ 智力猜测; while(9876){ cout您的cin似乎处于错误状态,因为之前尝试读取“错误”数据,就像尝试将“hello”读入int中一样。如果处于错误状态,则应清除它: #include <iostream> #include <limits> using namespace std; int main() {

输出垃圾邮件“无效”,使我没有时间输入新的猜测。如何使其暂停?

您需要筛选数值(请参阅):

#包括
#包括
使用名称空间std;
int main(){
智力猜测;
while(9876){

cout您的
cin
似乎处于错误状态,因为之前尝试读取“错误”数据,就像尝试将“hello”读入
int
中一样。如果处于错误状态,则应清除它:

#include <iostream>
#include <limits>

using namespace std;

int main() {
    int guess;
    while (guess<1234 or guess>9876) {
        cout << "Invalid" << guess << endl;
        cin >> guess;
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}
while(9876)
{
猜不到;
}

您还需要为
std::numeric_limits

guess
添加
,因为它未初始化…您必须在检查
guess9876
之前进行
cin>
。我只查看了“垃圾邮件”,假设guess将在之前的某个地方初始化。
guess
未初始化…@ikh where?在mdsl的答案中是。但在OP的问题和我的答案中,您只能看到相关的while循环。
guess
应该在它之前初始化,在您看不到的代码部分。在循环内初始化它没有道理。
#include <iostream>
#include <limits>

using namespace std;

int main() {
    int guess;
    while (guess<1234 or guess>9876) {
        cout << "Invalid" << guess << endl;
        cin >> guess;
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}
while (guess<1234 or guess>9876)
{
    cout << "Invalid" << endl;
    if (!cin) {
        cin.clear();
        cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
    cin >> guess;
}