Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 2 года назад.
Писал мини программу в Qt Creator. заметил странный баг при проверке (ValidateVariant) введенных данных (GetVariant). Если сначала ввести пустую строку, символы или неверный номер, а затем правильную команду, то функция вместо выхода заного себя запускает, вместо выхода.
bool ValidateVariant(string &str){
if ((regex_match(str, regex("\\s"))) || str.empty()){
cout << "\x1b[2C\x1b[0;31m"
"Введена пустая строка."
"\n\x1b[2C\x1b[0;37m>";
return false;
}
if (str.find_first_not_of("1234567890") != string::npos){
cout << "\x1b[2C\x1b[0;31m"
"Введен текст. Должно быть число."
"\n\x1b[2C\x1b[0;37m>";
return false;
}
if (!(stoi(str) < 6 && stoi(str) > 0)){
cout << "\x1b[2C\x1b[0;31m"
"Нет комманды под таким номером."
"\n\x1b[2C\x1b[0;37m>";
return false;
}
return true;
}
int GetVariant(){
string variant("");
while (getline(cin, variant)) {
if (ValidateVariant(variant)) return stoi(variant);
else GetVariant();
}
}
Закомментируйте/удалите эту строчку.
// else GetVariant();
Рекурсия здесь не нужна.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Cтруктура node имеет в своих полях указатели на node
У меня есть скомпилированный из ассемблераobj файл с функцией
Реально ли сделать выход из цикла без команды ввода? Допустим идет бесконечный цикл и в любой момент я нажимаю ENTER и цикл прекращаетсяЕсли...