C ++ - перейти к следующей итерации при вводе - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь прочитать значения из пользовательского ввода, целочисленные значения, внутри цикла for. Мне нужно, чтобы цикл пропускал текущую итерацию, когда пользователь нажимает ввод. Как то так.

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, игнорировать его и переходить к следующей итерации.

Thanx

1 Ответ

0 голосов
/ 08 ноября 2018

Может использоваться: продолжить

При использовании продолжения текущий цикл пропускается.

В случае, если вы можете сделать: 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;
            }
        }
}
...