2016-09-05 23 views
-3

私は簡単な質問があります。どうすればいいのですか? Hello worldを印刷してからanotherMessageに移動し、その関数でメッセージを印刷し、次のcoutをスキップして「この印刷をやめて」終了して終了します。コードをスキップしてプログラムを終了

また、関数を交換しますが、ステートメントを同じにします。

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

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

'anotherMessage()'定義の最後に 'exit(0)'を置くことができます。 –

+0

こんにちは、世界を印刷し続けて印刷し、この行を印刷しないでください。 – Aryan

+1

'if'ステートメントを知っていますか? – rustyx

答えて

1

anotherMessage()関数の型をintとして定義し、整数値(以下のコードでは1)を返すことができます。返された値が1かどうかをチェックし、yesの場合は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

単一のexit()ステートメントはすぐにコードを閉じますが、目的のステートメントではありません。

関数がこのようなブールを返すときにif文を使用できます。

bool func(); 

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

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

としては、あなたがanotherMessage()定義の終わりにexit(0)を使用することができますῥεῖπάνταによって指摘。

exit(0)

exit(1)は(通常は)un​​sucessful終了を示しますが、それは、完全にポータブルで成功したプログラム終了&を示しています。しかし、その使い方は移植性がありません。

たとえば、ライブラリで終わる可能性のある関数を書いている場合、そこからexitを呼び出すことは一般的に悪い習慣です:呼び出し側のコードにエラーを通知するほうが例外など)、呼び出しコードが何をすべきかを決めることができます。 (たとえあなたがquit_if_file_not_foundという関数を書いているのであれば、完全に有効な場合もあります)。

あなたの解析関数はおそらくexitを呼び出すべきではありません:youたとえば、ある時点で、最初の解析に失敗した場合に別のファイル名を要求するメインコードが必要な場合があります。解析ルーチンがプログラムを終了する場合は、メインコードとその関数の両方を変更する必要があります。エラー状態を通知した場合は、メインのロジックを変更するだけで済みます。

(エラーメッセージを出力せずに終了したり、上記のようにログを残すだけでは、発生したコードの問題を修正する方法がわからない、欲求不満のユーザーになることはありません)

+0

OPがパーサーを作成してファイル名を尋ねているという、あいまいな質問からどのように推測しましたか?あなたはシャーロックホームズですか? – molbdnilo

+0

@molbdnilo:いいえ、私はちょうど 'exit()'のユーザーが良いか悪いのかを伝えたいと思っています。 – Shravan40

関連する問題