• ベストアンサー

C言語初心者ですが……

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

noname#160322
noname#160322

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

  • ベストアンサー
回答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

  • C言語初心者ですが……

    C言語初心者ですが…… すみません。C言語を初めてやろうと考えています。それでいくつか分からない点があり、皆さんに相談した次第です。 まず初心者おなじみの「Hello,world!」を表示させるプログラムをつくってみました。 構文とか拡張子とかは完璧です。自信あります。 しかし、いざexeファイルを開いたところ、なぜかウインドウが一瞬で閉じてしまいました。そのため、本当に画面に「Hello,world!」が表示されているのかどうかとても心配です。 こういうとき、どうすればいいのでしょうか。もしよろしければ答えて頂けると幸いです。 ちなみに私はMicrosoft Visual C++ 2010 Expressとやらを使っています。

  • microsoft visual C++ でC言語のプログラミング

    プログラミングの超初心者です。 microsoft visual C++ 6.0を利用してC言語のプログラミングをしたいのですが,最も基本のhello worldを表示させようとしてビルドを行うと以下のようなエラーが表示されますが,解決法がわかりません. --------------------構成: hello1 - Win32 Debug-------------------- リンク中... LINK : fatal error LNK1104: ファイル "Debug/hello1.exe" を開けません。 link.exe の実行エラー hello1.exe - エラー 1、警告 0 解決法を教えていただけるとうれしいです. お願い致します.

  • 初歩的プログラミング(C言語)

    あるサイトを見つつ、C言語を学んでみようかと思い、コンパイルする直前までこぎつけました。 #include <stdio.h> void main () { printf("Hellow World!"); } とメモ帳などで打ち、 test.cとして保存しました。 cygwinでコンパイルしようとしたところ、 test.c:In function `main': test.c:4: warning:ruturn type of 'main' is not `int' と表示され、コンパイルできません。 他所でコンパイラの問題では?と言われていたのでVisual C++を使い、 ビルド、デバッグなしで開始、とすると Hello World! 続行するには何かキーを押してください... となり、成功しました。 Visual C++ を使えば問題ないのですが、どうしてcygwinではできないのか・・・と思いました。 そして確かに Visual C++で デバッグなしで開始 とすると実行できるのですが、実行ファイル(exe)というのができるときいていたのでできておらず、少し戸惑っています。 あと、Visual C++についているコマンドプロンプトを使ってできるのかな・・・とも思いましたが、使い方がよくわかりません。 私がCとC++をこんがらがって考えている(CとC++ってほとんどいっしょ?などと)せいなのかもしれませんが、教えていただけたら助かります。

  • プログラミング言語Cとプログラミング言語C++

    プログラミング言語Cとプログラミング言語C++の違いって何ですか? あと、プログラミング言語C++についていくつか質問があります。 #include <iostream> using namespace std; void main(){ cout << "Hello world!" << endl; } このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか? using namespace stdって何ですか? あと、 cout <<"Hello world!"って何ですか?

  • [C言語] main() の後ろ "{"の場所は?

    こんにちは。 C言語のおなじみのプログラムですが、下記2パターンの書き方というか考え方があるんだと思います。 そして、どちらを選ぶかで、いろんなところへ影響することが考えられます。 基本は、どちらなんでしょう? ■パターン1 int main() { printf("Hello World!\n"); return 0; } ■パターン2 int main() { printf("Hello World!\n"); return 0; } たった"}"だけの場所のことですが、皆さんの考え方を伺いたくてスレを立てました。 持論でももちろん結構ですので、よろしくお願いいたします。

  • C言語でのプログラムの作り方

    はじめまして。C言語初心者の中学一年生です。 C言語でプログラムを作ろうと思ったのですが、やり方がわかりません。 ”hello”と表示するプログラムの作り方を教えてください。 使用しているコンパイラは"Visual C++ 2010"です。パソコンはWindows xpです。 中学生でも分かるように教えてください。 エディエタ、やソースプログラムなどの用語についても教えてくださると嬉しいです。

  • Visual C++ 2008 Express Edition

    Visual C++ 2008 Express Editionをダウンロードしたのですが、使い方が全く分かりません。C言語を学習しています。 例えば #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; } というようなプログラミングを実行するにはどうすればいいでしょうか

  • c言語始めようと思って挑戦しています

    c言語に必要なソフト eclipseのプラグインのc言語のやつと visiual c++ 2008 express edition が一応あります。 それで一番 有名らしい #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } がビルドエラーになります。 上の二つのソフト以外になにか必要なものがあるのでしょうか? かなりの初心者です。

  • windows8でC言語を使う場合、Visual

    windows8でC言語を扱いたい場合、 http://www.microsoft.com/visualstudio/jpn#downloads+d-2010-express のページへ飛ぶと、計7つのダウンロード項目が確認できます。 また、7つ中、上2つのどちらかだと思います。 ここで質問ですが、ダウンロードするのは、 1.Visual C++ 2010 Express 2.Visual C# 2010 Express のどちらなのでしょうか? 補足ですが、Win8でC言語を扱う場合、これ以外にもっと良い方法はあるのでしょうか? 自分では、このVisual Studio 2010 Express が、最新バージョンではないかと予想しています。 詳しい方がいましたら、よろしくお願いします。

  • Win32 コンソールアプリケーション

    VisualC++ 2010 Express を利用して、C++を学んでいます。 Win32 コンソールアプリケーション でプロジェクトを作成しました。 最初に用意されたテンプレート(?)に、  printf("%s\n", "Hello World!"); を追加して、実行してみたのですが、「Hello World!」がどこにも表示されませんでした。 ソリューション(プロジェクト?)が保存されているフォルダへ移動して、 exe形式の実行ファイルがあったので、これを実行してみましたが、すぐに画面が消えてしまいます。 コマンドプロンプトを起動して、↑のexeを実行したところ、「Hello World!」が表示されました。 ★ いちいちこの手順を踏むのが非常に面倒なのですが、Visual C++ 内で完結できないでしょうか? 以上、よろしくお願いします。

専門家に質問してみよう