エラー終了するにはどうすればいいですか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ウババア

エラー終了するにはどうすればいいですか?

#1

投稿記事 by ウババア » 18年前

c言語でゲームを作っているのですが
スタート画面の処理、ゲーム画面の処理をswitchでわけたとき、どうやってエラーのとき終了すればいいのかわかりません
while(1){
switch ( g_FrameNo ) {
        case START:
                Start();
        break;
        case GAME:
                Game();
        break;
}
}
Game()の戻り値が1だったらエラーで終了しようとして
while(1){
switch ( g_FrameNo ) {
        case START:
                Start();
        break;
        case GAME:
                if ( Game() != 0 ) return 1;
        break;
}
}
こうやればいいのかとおもったのですがswitch関数を抜けるだけで終わってしまいます
なにかいい方法ないでしょうか?

管理人

Re:エラー終了するにはどうすればいいですか?

#2

投稿記事 by 管理人 » 18年前

return 文を書くとそこで関数が終了します。
よって条件文を抜けるだけにはなりません。

returnを書く事でswitch文を抜けるのなら一番下の文字が出力されるはずです。
実行してみてください。
#include <stdio.h>

int main(){
	switch(1){
		case 1:
			if(1!=0){
				printf("エラーreturn");
				return 0;
			}
			break;
	}
	printf("ここは出力されない");
	return 0;
}

ウババア

Re:エラー終了するにはどうすればいいですか?

#3

投稿記事 by ウババア » 18年前

おお!returnでmain関数を抜けることってできるんですね
よく見たら違うところでミスしてました
ありがとうございました

tk-xleader

Re:エラー終了するにはどうすればいいですか?

#4

投稿記事 by tk-xleader » 18年前

異常終了ならば、標準ライブラリ関数のabout()関数を使うことも可能ですよ。

管理人

Re:エラー終了するにはどうすればいいですか?

#5

投稿記事 by 管理人 » 18年前

もしDXライブラリでゲームを作成されているのでしたら、
DxLib_End() ;を通して終了した方がよさそうです。

DX_exit(int);

とでも関数をつくり、intにエラー番号を渡してから終了させれば管理もしやすくなるでしょう。

閉鎖

“C言語何でも質問掲示板” へ戻る