2016-09-05 5 views
-3

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

Также, как мне выйти из программы, если i меняйте функции, но держите заявления одинаковыми

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

void anotherMessage() 
{ 
    cout << "Print this"; 
} 
+5

Вы можете поместить 'exit (0)' в конце определения 'anotherMessage()'. –

+0

Что делать, если я хочу сохранить печать мира приветствия и напечатать это и пропустить Не печатать эту строку? – Aryan

+1

Вы знаете инструкцию 'if'? – rustyx

ответ

1

Вы можете определить тип функции 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; 
} 
0

Оператор single exit() мгновенно закрывает ваш код, но не является желаемым заявлением.

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

bool func(); 

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

void main(){ 
    if(func()){ 
     // Do Stuff 
    }else{ 
     //Do other Stuff 
} 
} 
2

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

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

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

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

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

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

+0

Как вы вывели из этого неопределенного вопроса, что OP пишет парсер и спрашивает имена файлов? Вы Шерлок Холмс? – molbdnilo

+0

@molbdnilo: Нет, я просто хотел указать, где пользователь 'exit()' хорошо или плохо. – Shravan40

Смежные вопросы