• ベストアンサー

C言語で作ったEXEファイルの実行について

最近、C言語で作ったEXEファイルをPC上で実行しました。 ファイルは実行できて、数値の入力、計算結果の表示はされるのですが すぐに閉じて(終了して)しまいます。 プログラムの流れは 1)メッセージの表示 2)カンマ区切りで数値の入力 3)計算結果の表示 の順番で実行されます。 しかし、3)が表示された後すぐファイルが閉じられてしまうため、 計算結果の確認ができません。 エディター(Bcpad)で実行すると計算結果が表示された後に何かキーを押すと正常に終了します。 どうすればいいでしょうか。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.3

>ファイルは実行できて、数値の入力、計算結果の表示はされるのですが >すぐに閉じて(終了して)しまいます。 お使いの開発環境(BcPad以外)においては、コマンドプロンプトへの 結果表示後、すぐに閉じてしまうようになっているのでしょう。 回避するための方法はいくつかありますが、安直なのはプログラムの最後に getchar(); を入れて、何か入力する(一般にはエンターキー)まで待ち続けるなんていう 手があると思います。

yf491224
質問者

お礼

早速の回答ありがとうございます。 プログラムの最後にgetchar()で入力受付する案 やってみます。 貴重な意見ありがとうございました。

その他の回答 (3)

回答No.4

例えば、手元のWin7だと、 Winキー+Rで「ファイル名を指定して実行」ダイアログを表示。 「cmd」と入力、OKでコマンドプロンプトを表示。 作成した.exeをコマンドプロンプトへドラッグ&ドロップし、ファイルのパスを入力し、そのままEnterで実行。 とか。 あるいは、 .exeと同じフォルダをエクスプローラで表示。 何もない場所を右クリック-[新規作成]-「テキスト ドキュメント」 「新しいテキスト ドキュメント.txt」のファイルが作成されるので、ファイル名を「△△.bat」と、適当な名前と拡張子に.batを指定。 「拡張子を変更すると、ファイルが使えなく~」の警告が出るので「はい」で拡張子変更。 (エクスプローラで拡張子を表示しない設定にしていると、上手くいかないかも。) .batを右クリック-[編集]でメモ帳で編集。 ○○○○.exe ←作成した.exeの名前 pause と記載して上書き保存して閉じる。 .batをダブルクリックなどで実行。 とか。

yf491224
質問者

お礼

早速の回答ありがとうございます。 batファイル上での実行 なるほどと思いました。 貴重な意見ありがとうございました。

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.2

EXEということはWindowsですね。 ビルドはコマンドプロンプトアプリですか? で、実行はエクスプローラから開いた? だったら結果を表示したらすぐ閉じるのは当たり前です。 コマンドプロンプト用にビルドしたものならコマンドプロンプト上で実行しないとプロンプト自体が閉じてしまいます。 これは「ファイル名を指定して実行」で「dir」と実行したときと同じです。 ※Windows10ではdirが見つからないとエラーになりますがw  あ、xcopyなら実行できますね。 Windowsで開発している人にとっては常識なので覚えておきましょう。

yf491224
質問者

お礼

早速の回答ありがとうございます。 ビルドしてできたのはDOS上で動くアプリケーションです。 DOS上で動かさないとだめなのですね。 ご指摘ありがとうございます。

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.1

計算結果を表示した後の処理はどうしていますか? 入力受付処理にループして無ければ当然じゃないでしょうか?

yf491224
質問者

お礼

早速の回答ありがとうございました。 結果を表示した後は、プログラムの終了です。 >入力受付処理にループして無ければ当然じゃないでしょうか? そうだったのですね。 てっきり、Bcpad上の動作と同じになると思っていました。 ご指摘ありがとうございました。

関連するQ&A

  • c言語:ファイルの入出力

    2つの行列をファイルから読み込み、その積をファイルに出力するプログラムを 作りたいのですが、参考書を読んでもよくわからないので教えて頂きたいです。 テキストファイルの文字列のコピーなどは、参考書を見てできたのですが、 ファイル入出力を使った数値の計算がいまいち理解できませんでした。 注意点は以下の通りです。 ・ファイルはカンマ区切りのテキストファイルとし、入力ファイルはエクセルで作成。拡張子は.csv。 ・ファイル名はキーボードから入力できるようにする。 よろしくお願いします。

  • exeファイルが実行できません

    保存したexeファイルを実行できません。 「実行する」のボタンをクリックすると、「Extracting setup files...」と表示されたウィンドウが一瞬現れてすぐ消えます。その後、「問題が発生したため、setup wizard を終了します。ご不便をおかけして申し訳ありません。」とエラーが出ます。 どうしたらこのファイルを実行できるのでしょうか? 解決策を教えてください。よろしくお願いします。

  • exeが実行されなくなりました

    フォルダオプションのファイルの種類で、誤って新規にexeを登録したところ、exeファイルをクリックするとテキストエディタが起動して内容が表示され、実行することができなくなってしまいました。システムの復元も同様で実行できません。元に戻す方法をご教授ください。

  • C言語のファイル読み込み

    以前の質問で書いているプログラミングでの延長上質問なのですが、 C言語でファイル名を自分で入力したとします。 使われている拡張子は既知なので、「????.csv」の「????」(後に入力する為、文字数不明、数値混じり、コンマも混じる)だけを格納したいのですが、どうすればいいでしょうか?

  • C言語でファイルの入出力

    C言語についての質問です。 統計学のシュミレータを作っていまして 大量の数値データ(1000程度)のデータを入力する必要があるのですが scanfなどで入力要求するには、数に無理がありますので 外部テキストファイルからプログラムに読み込みたいのですが 方法が分かりません。 希望としては、まずテキストファイルに 1000個の数値データを入力しておいて (数値データのみをコンマとか改行で区切ったものをあらかじめ作成しておく) それを1000個の配列 int data[1000]に 順番にインポートできるようにしたいです。 データ数は1000個で固定、すべてint型でOKです。 数値として処理したいので 文字列としてインポートしてしまうのはダメです。 あくまでint型の数値として考えてください。 回答よろしくお願いします。

  • C言語での実行

    C言語(ボーランドのCpad)を使っています。 いつも使ってるパソコンと違うパソコンでC言語のプログラムをし始めました。 前のパソコンと同じようにプログラムのコードをCファイルで保存して同じように新しいパソコンから開いて同じように実行ボタン押したのですが、実行できず、exeファイルが存在しませんって表示されます。 ちなみに、動かすプログラムは4つあり、そのうちの3つはちゃんと実行でき、ファイルも作成できるのですが、同じ方法でやってるあと1つのプログラムだけがうまくいきません。 4つとも同じフォルダにするようにしていて、3つはちゃんと実行できるので、フォルダが違うことはないと思います。 なぜ「exeファイルが存在しません」ってなるのか。 ちゃんとフォルダにCファイルはあるのに。 ちなみに、正確にできる3つのように、実行できると「OBJファイル」とか「アプリケーション」とかも同時に作成されます。 ただ、問題の1つのプログラムは当然、実行できず、exeファイルが存在しませんって表示されるので何も作成されません。 ボーランドのC言語、実行、ファイル、など詳しい方ぜひ教えて下さい。 同じやり方で今までのパソコンではできていたのに、パソコン変えると実行できなくなります。 フォルダやCファイルが正確ではないのかとも思いましたが、前までのパソコン通りにやっているので問題ないと思います。 ぜひアドバイス下さい。

  • exeファイルの自動実行

    Linux Mint に wine をインストールして、Windowsの実行ファイルを実行させています。 具体的には、exeファイルを右クリックして、 [別のアプリで開く]-[Wine Windows Program Loader]を選択 で起動しています。 これを、例えば、拡張子.txtのテキストファイルをクリックすると、馴染みのエディタが起動するようにしたいのですが、設定の方法がわかりせん。 なお、exeファイルはインストールするタイプではなく、実行ファイルだけで完結したWindowsで動いていたプログラムです。

  • exeファイルを実行するとコマンドプロンプトがすぐに閉じる

    最近C言語でのプログラミングを始めたばかり なんですが、プログラムをコンパイルすると exeファイルができますよね。 そのexeファイルを実行したときに、 コマンドプロンプトが一瞬開いて結果が表示され すぐに閉じてしまうので、内容を確認することが できません。 どうしたら、すぐに閉じないようにできるでしょうか?

  • C言語について

    ソートを使い入力した数値を並び替える。昇順、降順を選べるようにする。 順位を付けるた。ただし、複数同位があった場合にはその個数分順位が変更する。 このような問題なのですが 入力個数の部分までは自力でできたのですが、ソートを習っていないのでこの後がよく分かりません。 下のような実行結果になるようだれかわかる人お願いします。 # include <stdio.h> int main(void) { int a[100],kai=0,sentaku; printf("整数を入力(CTRL+dで終了) >> "); while(1){ if(scanf("%d",&a{kai}) == EOF )break; kai=kai+1; printf("整数を入力(CTRL+dで終了) >> "); } printf("入力個数%d回\n",kai); return 0; } 実行結果 数値>>1 数値>>3 数値>>-1 数値>>-3 数値>>10 数値>>3 数値>> 入力回数:4回 1:昇順、2:降順>>1 NO.1:-3 NO.2:1 NO.3:3 NO.3:3 NO.5:10

  • 拡張子が「.exe」でないファイルを実効ファイルとして実行するには?

    こんにちは。 いつもお世話になっております。 拡張子が「.exe」でないファイルを実効ファイルとして実行するにはどうしたらよいでしょうか? 例えばVBで作成した実行ファイル「test.exe」を名前の変更で「test.txt」などにした場合にそれを実行ファイルとして実行したいのです。 エクスプローラ上でダブルクリックした場合は当然テキストエディタが立ち上がってしまいます。 一応、コマンドプロンプト上で実行した場合は実効ファイルとして起動したのですが、 もう少し簡単に(ファイル名を指定して実行などで)できないのでしょうか? どうかご教示下さい。 環境:Windows 2000

専門家に質問してみよう