2016-07-23 14 views
-2

GCCコンパイラをインストールしてC言語のコードを書きましたが、ディレクトリに移動してコマンドgcc -o helloworld helloworld.cを使用すると、デスクトップの実行可能ファイルが通常のようになりますが、すぐにCの実行ファイルがすぐに返される

私はコードが問題だとは思わないが、それは可能性がある。

#include <stdio.h> 

int main() 
{ 
    printf("Hello world\n"); 
    return 0; 
} 
+1

エラーは何ですか? – OldProgrammer

+0

エラーはありません。コマンドプロンプトでgcc -oコマンドを使用し、実行ファイルを実行すると、すぐにクラッシュします。 –

+0

「クラッシュ」とは何ですか? – OldProgrammer

答えて

3

あなたのコードにはgetchar()が見つかりませんでした。

#include <stdio.h> 

int main() 
{ 
    printf("Hello world\n"); 
    getchar(); 
    return 0; 
} 

注:けれども、これは他の回答で@Keithトンプソンexplainsとして修正ではありません。代わりに、これは、コンソールウィンドウが終了する前にキーを押すのを待つまで、プログラムを強制的に終了させる方法です。


getchar()を使用せずに)別の方法

オープンコマンドプロンプトcmd.exe)、およびプログラムのディレクトリに移動し、そこからプログラムを実行します。ウィンドウがもう消えず、むしろ開いたままであることがわかります。

+1

。ありがとう。 –

+3

ここでは、 ' 'を使用する必要はありません。コードは、それがなくても移植性があります。 **編集:**今はるかに良い;) – iRove

+1

@iRoveは通知してくれてありがとう、それを削除しました:) –

5

問題は、Windowsには非GUIプログラムの実行に対するサポートが貧弱なことです。

Windows上でプログラムを実行する一般的な方法は、エクスプローラウィンドウから実行可能ファイルをダブルクリックすることです。標準的な出力にプリントするだけのプログラムでは、プログラムの出力用の新しいウィンドウが開き、プログラムが実行されて素早く終了し、Windowsはすぐにウィンドウを閉じるでしょう。

一般的な回避策は、プログラムの入力を待つために、getchar()への呼び出しなど、プログラムの最後に何かを追加することです。

もう1つの解決策は、コマンドプロンプトからプログラムを実行することです。その出力は一時ウィンドウではなく現在のウィンドウに表示され、プログラムの出力に続いて新しいプロンプトが表示されます。このように実行すると、getchar()を追加する必要はなく、プログラムは終了する前に入力待ちになります。

Windows OSは、プレーンテキストの入出力を使用するプログラムではなく、GUIプログラムを強調しています。 Cは別の種類の環境で開発されました(もちろん、Windows用のCの実装ではグラフィカル操作がサポートされています)。

関連する問題