Прежде чем ответить мне, я изучаю C++ в настоящее время и имею только некоторые знания о C++.Перенаправление на функцию из функции
Вот пример, пользователь увидит выбор языка, и пользователь должен ввести номера слева от языков, чтобы выбрать его, иначе он снова вернется к выбору.
Так у меня есть идея: поместить функцию главного на первом и языке функцию в прошлом. Но проблема в том, что основная функция находится перед языка функции, поэтому основной функция не может найти язык функцию и завершить программу (Конечно, из-за этой проблемы, я не могу скомпилировать источник . код)
Вот пример кода:
int main() {
language(); // The main function redirect user to the language function
}
int language() { // The language() function
std::cout << "1 for cookie!";
std::cin >> choice; // Ask user for choice
if (choice == 1) {
choice1(); // If the choice is 1, user will be redirected to choice1() function
} else {
main() // Otherwise user will be redirected to main and of course, redirect to language() function again
}
}
из-за описанной выше проблемы, я получил предупреждение от Code :: Blocks IDE при перестроен проекта:
error: 'language' was not declared in this scope
Есть ли другие способы перенаправления пользователя на другую функцию из функции?
EDIT: Текущие ответы привели меня к бесконечной петле, и это не результат, который я хочу видеть. Результат, который я хочу увидеть, - это если пользователь напечатал недопустимое значение, он перенаправит пользователя на функцию, которую пользователь в данный момент снова набирает, и код должен быть запущен только один раз. (Значит, не бесконечный цикл)
Вы * действительно * вызываете 'main()' внутри другой функции? –
Вы не должны вызывать 'main' внутри программы на C++. – jrok
@MarcClaesen Да, * но только когда пользователь вводит что-либо, кроме 1 * – ngbeslhang