2

私はCプログラミングが初めてです。以下の私のプログラムでは、プログラムが入力「終了」を受け取った場合、追加のダイアログを表示せずに C プログラムをすぐに終了しようとしています。

exit(0);ただし、プログラムが終了する前に、次のような出力を使用してこれを達成しようとしています

success
process exited with return value 0
Press any key to continue...

このダイアログを回避して、すぐにプログラムを終了しようとしています。これは可能ですか?

これについて何か助けていただければ幸いです。

よろしくお願いします!

私のCコード:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main(void)  {
    char command1[256], command2[256];
    printf("# ");
    scanf("%s", command1);
    if(strcmp(command1,"quit")==0){
        printf("success");
        exit(0);
    }else{
        printf("unknown command");
    }

system("PAUSE");
return 0;

}
4

5 に答える 5

6

表示されるメッセージは、実際には Visual Studio デバッガーによって生成されます。それは実際にはあなたのプログラムから来ているわけではありません。

プログラムが実際にメッセージを表示していない (またはキーが押されるのを待っていない) ことを確認したい場合は、Windows コマンド プロンプトからプログラムを実行してみてください。Visual Studio から「リリース」モードでプログラムを実行することもできます。これも確認になります。

デバッガーがその情報を表示する理由は、プログラムで何が起こっているかを理解するのに役立つだけです。

于 2013-02-08T16:43:18.147 に答える
0

確かにコードからではprocess exited with return value 0なく、入力と出力の途中にあるプログラムから来ています。

これをコマンドライン (Mac OSX) でコンパイルしたところ、次の出力が表示されました。

James:Desktop iPhone$ gcc code.c 
James:Desktop iPhone$ ./a.out
# quit
successJames:Desktop iPhone$ 

system("PAUSE");どちらにも到達しなかったことに注意してください

于 2013-02-08T16:47:15.860 に答える
0

その出力はあなたのプログラムから来るのではなく、あなたのプログラムを実行するプログラムから来ます。おそらく「Visual Studio」ですが、他のタイプのIDEでも同様のことができると思います。

于 2013-02-08T16:43:11.060 に答える
0

実行環境の詳細を投稿できますか? あなたのプロセスは、「Press any key to continue」行を出力している別のアプリケーション(おそらく特殊なシェル)によって終了コードを監視されているようです

于 2013-02-08T16:45:16.710 に答える