C ++-在进入时跳到下一个迭代

时间:2018-11-08 20:41:09

标签: c++17 cin enter

我正在尝试从for循环内的用户输入读取值(整数值)。当用户按下Enter键时,我需要循环跳过当前迭代。像这样的东西。

short value;
for(short i = 0; i < size; i++){
    cout << "Enter value. If you don't feel like it, press enter.";
    cin >> value;
    if(value is different from ENTER)
        cout << "did something with " << i << endl;
    else{ //off to next iteration
        cout << "did nothing with " << i << endl;
    }
}

样品运行:

//input for size = 3
15Enter
Enter
34Enter

//output
did something with 0
did nothing with 1
did something with 2

我在很多地方都发现cin并不是最佳选择,但是我还没有找到可以用于读取整数而不是字符串的示例。

注意:我并不是真的想验证它是输入的整数,我只需要知道它是否只是一个ENTER并忽略它,然后继续进行下一个迭代即可。

感谢

1 个答案:

答案 0 :(得分:0)

也许使用:继续

使用继续时,当前循环为跳过。

在可以的情况下:if(value!='\ n'){...}

\ n是ENTER

编辑:

for(short i = 0; i < 10; i++){
            cout << "Enter value. If you don't feel like it, press enter.";
            if(cin.get()!='\n'){
                cout << "did something with " << i << endl;
                cin.clear();
                cin.ignore();
            }
            else{ //off to next iteration
                continue;
            }
        }
}