randomp103 Ответов: 3

Как заставить мою программу на C++ перезапускаться, когда пользователь вводит "y", и заканчиваться, когда вводится "n"?


Я пытаюсь заставить эту программу C++ работать так, чтобы программа перезапускалась при вводе "y", а при вводе " n " она перестает работать и просто просит пользователя ввести любую клавишу, чтобы завершить ее. Но я не знаю, какая у меня ошибка.

Что я уже пробовал:

tnt main() {

    char again; // to hold y or n input

    if (again == 'y'){
    // Asks user if they want to play again
       cout << "Would you like to play again? (y/n):";
       cin >> again;
    } else if (again == 'n') {
      cout << "Press any key to continue." << endl;
      cin.ignore(1);
    }
}

3 Ответов

Рейтинг:
1

Patrice T

Цитата:
Я пытаюсь заставить эту программу C++ работать так, чтобы программа перезапускала себя при вводе "y"

Никогда не пытайтесь перезапустить саму программу, она не работает.
Вы должны использовать петлю: C++ do...while loop - Tutorialspoint[^]
в вашем коде есть несколько проблем:
tnt main() {           // Error here: first word is int
    char again;        // The variable is not initialized
    if (again == 'y'){ // At this place, again is unknown
       cout << "Would you like to play again? (y/n):";
       cin >> again;
    } else if (again == 'n') {
      cout << "Press any key to continue." << endl;
      cin.ignore(1);
    }
}


Рейтинг:
0

Afzaal Ahmad Zeeshan

Цитата:
повторы при 'г' вводится и, когда " Н " введен,
Конечно, для этого вы заставляете его работать снова, и снова, и снова, пока не будет выполнено условие (inputing 'n').

Как сделать программу группой утверждений снова и снова? Используйте руководство, которое Вы читаете, чтобы узнать об этих структурах в C++. Есть хорошие практики и плохие практики, попробуйте их, и если вы не понимаете, вернитесь к нам, и мы поможем вам. :-)

Вы ищете do...while оператор здесь выполняет набор действий до тех пор, пока условие не станет истинным. Условие, в данном случае, заключается в том, что пользователь вводит 'y'.

do-while loop - cppreference.com[^]

Да, и еще здесь не хватает закрывающей скобки (если только вы не пропустили копирование последней строки вашей программы).


randomp103

Я пытался понять это уже целый час, поэтому я решил опубликовать его здесь, чтобы посмотреть, может ли кто-нибудь дать мне какие-либо подсказки о том, как это исправить. @Afzaal Зишан Ахмед

Afzaal Ahmad Zeeshan

Пожалуйста, изучите структуры управления C++, тот, который вы ищете, - это do...while чтобы выполнить захват входных данных, а затем повторно выполнить код до тех пор, пока пользователь не продолжит предоставлять 'y'во входных данных.

Рейтинг:
0

OriginalGriff

Первое, что вам нужно, - это конструкция цикла: есть три основных: for, while, и do
В этом случае я бы предложил do - это цикл, который заканчивается тестом:

do
   {
   ... your code here ...
   cout << "Would you like to play again? (y/n):";
   cin >> again;
   } while (again == 'y')