У меня простой вопрос. Как я могу сделать это Распечатать Hello world, затем перейти к «другому сообщению», затем распечатать сообщение в этой функции, затем пропустить следующий фрагмент «Не печатать это» и выйти,

Кроме того, как мне выйти из программы, если я поменяю функции, но сохраню те же операторы

void main()
{
    cout << "Hello World";
    anotherMessage();
    cout << "Dont print this";
}

void anotherMessage()
{
    cout << "Print this";
}
c++
-3
Aryan 5 Сен 2016 в 08:56

3 ответа

Лучший ответ

Вы можете определить тип функции anotherMessage () как int, вернуть целочисленное значение (1 в приведенном ниже коде). Убедитесь, что возвращаемое значение равно единице, если да, то выйдите из программы, вызвав exit (0).

void main()
{
cout << "Hello World";
int val = anotherMessage();
if(val) exit(0);
cout << "Dont print this";
}
int anotherMessage()
{
cout << "Print this";
return 1;
}
1
kiner_shah 5 Сен 2016 в 06:48

Как указано в πάντα ῥεῖ, вы можете использовать exit(0) в конце определения anotherMessage().

exit(0) указывает на успешное завершение программы, и она полностью переносима, в то время как

exit(1) (обычно) указывает на неудачное завершение. Однако его использование непереносимо.

Если вы пишете функцию, которая может оказаться, например, в библиотеке, вызов выхода из нее в целом является плохой практикой: гораздо лучше сигнализировать об ошибке вызывающему коду (например, с помощью определенного возвращаемого значения или исключения) и позвольте вызывающему коду решать, что делать. (Бывают случаи, когда это совершенно верно. Например, если вы пишете функцию с именем quit_if_file_not_found, ну, ваши пользователи ожидают завершения.)

В вашем случае функция синтаксического анализа, вероятно, не должна вызывать exit: вам может потребоваться, например, в какой-то момент в будущем, чтобы ваш основной код запрашивал у пользователя другое имя файла, если синтаксический анализ первого не удался. Если ваша подпрограмма синтаксического анализа завершает программу, вам необходимо изменить и ваш основной код, и эту функцию. Если он сигнализирует об ошибке, вам нужно только изменить логику в main.

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

2
Shravan40 5 Сен 2016 в 06:36

Единственный оператор exit () мгновенно закрывает ваш код, но это нежелательный оператор.

Вы можете использовать оператор if, когда ваша функция возвращает такое логическое значение.

bool func();

func(){
// Do Stuff
return  // true or false
}

void main(){
    if(func()){
        // Do Stuff
    }else{
        //Do other Stuff
}
}
0
Lord_Curdin 5 Сен 2016 в 06:06