• ベストアンサー

C言語初心者ですが……

C言語初心者ですが…… すみません。このたびC言語を学び始めるにあたって一つ困ったことが起きましたので、助けてください。 はじめての人御馴染みの「Hello,world!」を画面に表示させるプログラムをつくりました。拡張子も構文も完璧に作ることができました。しかし、exeファイルを開いて確認しようとしたところ、一瞬で画面が閉じてしまい、「Hello,world!」が表示されているかどうか確認できずにいます。 この原因が何なのか、対処法とあわせてご指導していただけると幸いです。 なお、自分はWindows7でMicrosoft Visual C++ 2010 Expressを使っています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

それはコンソールアプリケーションですね、多分。 黒いDOS画面が出てきてそこに「Hallo World」とか表示されるプログラムですね? まず、手っ取り早い解決策を一つ。 コマンドプロンプトを立ち上げてそのEXEファイルを打ち込んでみてください。 C:\>D:\Develop\HalloWorld.exe みたいな感じで。 消えずに済む筈です。 コンソールアプリケーションと言うのはいわゆる「バッチ処理」を行うアプリケーションです。 (この言葉にも馴染みは無いかな?) うまい言い方が見つからないので結論だけ言いますが、main()関数が終了したら直ぐにそのタスクは終了してしまうのです。 コマンドプロンプトを立ち上げてそこからEXEを呼び出せば、main()関数が終了してもコマンドプロンプトのタスクは生きてるので残り続けるってぇ寸法です。 直ぐに消えないようにプログラムを書き換えるなら、main()関数が終了しないように途中で処理を止めてやる必要があります。 以下のコードを書いてみましょう。 #include <stdio.h> #include <conio.h> ←コレを追加 void main() { printf( "Hallo World" ); getch(); ←コレを追加 } 確認してないけど多分動くハズ。 getch()関数は、何かキーが押されるまで入力を待ち続けると言う関数です。 conio.hはその関数を宣言しているヘッダファイルです。 こうすれば処理はgetch()で止まるので直ぐに消える事はありません。

noname#160322
質問者

お礼

ありがとうございます。 おかげさまで成功しました。

その他の回答 (3)

  • bajutsu
  • ベストアンサー率20% (139/693)
回答No.4

既に回答は出てると思いますが、 そのプログラムは 「Hello,world!」を表示する→mainを抜ける(終わる) という動作をするように作っているので、そういう動作します。 原因も何も、コンソールアプリとしては正常な動作です。 完璧に作られたのでしょう?動きとしても完璧じゃないですか。 コマンドプロンプトから、exe名を打ち込んで動かすか、 「Hello,world!」を表示したあと、すぐに終了しないようなプログラムにするか…、 バッチファイルで動作させて、exeを起動させたあと、pause を使う方法もあります。

回答No.3

コンソール(DOS窓)から直接そのプログラムを起動させればどうでしょうか?

  • m234023b
  • ベストアンサー率20% (54/266)
回答No.1

ソースを見ないと何にもいえない…

関連するQ&A

専門家に質問してみよう