• ベストアンサー

C言語

プログラムの実行結果に適当な名前をつけるプログラムを書きたいのですがどのように書けばいいのでしょうか?良くわかりません。バイナリ-ファイルを使えばいいのでしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.8

#7でも言われているけど、 C言語は、普通はインタプリタではないので、 コンパイルという操作(手順)が必要になります。 UNIX系なら gcc -o program program.c とか cc program.c とかします。 そうして実行可能ファイルを作って ./program として実行します。

tadashi1111
質問者

補足

実行した後はどうすればいいのでしょうか? 今調べたら http://www.info.sci.yamaguchi-u.ac.jp/computer/howto_report/ というがありこれならうまくいきますでしょうか?

その他の回答 (14)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.15

>disp.logの中身が見れませんでした。 環境で、コマンドが違うのかもね man script してみて下さいね。

tadashi1111
質問者

補足

オプションを見ましたらコマンドの意味がわかりました。ありがとうございます!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.14

#12>なるほど 入力する部分があるから 単純に ./program >disp.log だとだめなわけですね。 やはり、そういう場合は、script を使いましょう script -q disp.log ./program で、実行中のテキストがdisp.logに取れると思うので、 あとはそれをbzip2すればいいですよね。

tadashi1111
質問者

補足

script -q disp.log ./program で試したらdisp.logの中身が見れませんでした。 Nautilusをインストールしていないのが原因だったみたいです。

  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.13

script の説明についてのサイトを見てそのまんまやってるだけ? 内容と、何が起きてるのかを理解できてます? scriptコマンドは script ~ exit までのコンソール出力が全部ファイルに落とされるわけです。 だから exit をちゃんとやってファイルを閉じてやらないといけません。 この辺をふまえて、じゃあ何をしたらいいか考えてみたら?

tadashi1111
質問者

補足

もう一度よく考えてみます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.12

>プログラムも保存されており駄目でした・・・ 結局なにがどうだめだったんでしょうか? 何か、短いサンプルみたいなモデルケースを書いて貰えませんか? ・プログラムは、こんな感じの出力をする。 ・その表示を取るために、こういう感じでコマンドを実行した ・その結果はこういう感じだったが、本来、こういう感じであって欲しい とか

tadashi1111
質問者

補足

・プログラムは、こんな感じの出力をする。 >正の整数を入力:5 ***** ・その表示を取るために、こういう感じでコマンドを実行した >script >date >cat program.c > >gcc -o program program.c >./program >exit >more typescript とやりました。 ・その結果はこういう感じだったが、本来、こういう感じであって欲しい 結果は >script >date >cat program.c > >gcc -o program program.c >./program >exit までの打ち込んだものが残ってしまい。 ほんとは 正の整数を入力:5 ***** だけを保存したいのです。 説明が下手ですみません。

  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.11

>./a.out とした後にでる表示をbzip2で圧縮したいのですが。 #6の hpskさんの様にすればいいんですよ。 もう少し全体を見直した方がいいかと思いますよ。 安直な質問になると、なかなか答えてもらえなくなります。まず、自分で色々やってみることでしょう。 コンパイル・メイク・リダイレクト あたりについてもう少し勉強する必要ありかな。 プログラムは、言語がわかればいいだけじゃないんですよね。コンピューターの振る舞いや扱い方(シェルコマンドも含めて)についての知識も必要になります。 まだまだ学ばないといけないことがたくさんありますが、出来るようになったときの喜びは大きいですので、懲りずにわからないことは質問していくといいでしょう。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.10

>実行した後はどうすればいいのでしょうか? 今まで散々書いてきてますよね? Scriptを使うと、入力もとれていいですよね~

tadashi1111
質問者

補足

scriptで試して中身を見たらプログラムも保存されており駄目でした・・・

回答No.9

ひょっとしてプログラムの実行結果と書いているのは、コンパイルの実行結果(エラーメッセージ)でしょうか?? であれば、エラーはstderrに表示されるので、bashの場合、  cc test.c 2> err.log とやるとか。。 さらに、圧縮したければ、  bzip2 err.log で、err.log.bzができるでしょう。。

tadashi1111
質問者

補足

エラーメッセージではないです。 cc test.c ./a.out とした後にでる表示をbzip2で圧縮したいのですが。

  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.7

なんか、UNIX系とWindows系がごっちゃになってるような気がするんですけど、気のせいかしら? program.c はメイクして実行形式にしてます? program.cって言う実行ファイルがないって言われてるように読めるんですけど。 ソースファイルそのままでは動きませんよね、C言語って。シェルスクリプトじゃないんで。

tadashi1111
質問者

補足

UNIXです。 実行形式にしてませんでした・・・。

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.6

> program.exe >bzip2 result.txt program.exe の結果をbzip2で圧縮したいのですか? ならば、 program.exe | bzip2 > result.txt.bz2 とかかと思いますが。

tadashi1111
質問者

補足

こんばんは。はい実行結果を圧縮したいいんです。でも 実行してもうまくいきませんでした。 bash: program.c: command not found と表示されてしまいます・・・。

回答No.5

ちなみに、表示結果をファイルに追記していきたいなら、 program.exe >>result.txt です。

tadashi1111
質問者

補足

こんばんは。 実行してもうまくいきませんでした。 bash: program.c: command not found と表示されてしまいます・・・。

関連するQ&A

  • msysを用いてc言語の学習をしているのですが

    実行したプログラムの結果がたくさん表示されるため実行した場合全ての結果が表示することができません。また実行ファイルを起動した場合実行され終了するとすぐファイルが閉じられるので結果を閲覧することができません どちらかひとつでも解決策はあるのでしょうか? よろしくお願いします。

  • C言語のファイル入出力について教えて下さい

    C言語初めて1ヶ月の超初心者です。 本を読んでもネットで調べても、ファイル入出力の意味がいまいちよく分かりません。 プログラムはCPadで書いています。 書き終わったプログラムを.cのファイル名で保存し、それをコンパイル。 読み込みたいファイルを.csvで作る。書いたプログラムの実行ボタンを押し、 .exe .csv .c の3つのファイルを打ち込んだ後、また.cを打ち込む。 これで一応実行はできるのですが、csvファイルで作ったもの (例をだして言うと ------------------------------------------------------------------ 名前     番号      給与   残業代    所得税 ○○  0001     200000   20000     10000 ------------------------------------------------------------------ というものをcsvで作るとします)  は、プログラムでも、名前 番号 給与 残業代 所得税 と書いてある部分はまったく同じように作らないと csvファイルから読むことはできないのでしょうか? csvファイルとプログラムを実行した結果の役割が、理解出来なくて困っています。ずっとプログラムの文法(?)ばかり勉強してきて、いざファイル入出力をしたら、どういう意味があるのかどう役立つのか分かりません。 後、上のような表で20人分をまとめて出力したいのですが、ファイル入出力するにあたって、条件式はfprintfなどを書く前に書くのでしょうか? お勧めの分かりやすい本などの情報も、教えて頂けると嬉しいです。   長々申し訳ありませんが、宿題の納期が近いので困っています。 よろしくお願いします。

  • C言語を始めよう!

    C言語を始めよう! http://www.forest.impress.co.jp/article/2002/10/24/cwohajimeyou.html を使用しています。 NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない  と言う問題は、LSI C-86 Ver.3.30c 試食版をツールを利用して実行するプログラム共通の問題のようです。  CPad for LSI C-86でも、以下のとおり、同様の問題があり、 COMMAND  プログラムで、この問題を解決しようとしています。 phb1122  でも、以前は、 COMMAND を利用した形跡があります。今は、 PIF ファイルを作成 することで解決しています。  なぜ、このような経緯になったのか詳しく解説していただけませんでしょうか? ******************************* WindowsNT/2000上の CPad for LSI C-86 で、コンパイルはできるが、実行結果が表示されない これは LSI C-86 が16ビットアプリケーションであるために起こる現象です。 解決策は、作成した実行ファイルを実行する前に一度、Windows9xとの互換性のために用意されているcommand.comを実行することで回避できます。 CPad での設定方法は、 [設定]ダイアログ-[高度な設定]ページの[以下の設定を変更する(C)]にチェックをしてから、[実行するコマンド(B)]に %WINDIR%\system32\command.com /c exit > nul と記述して[OK]ボタンをクリックします。 これでNT/2000上でも LSI C-86で作成した実行ファイルの出力を確認できます。 また、この現象が起こらない場合もあるようですが、どういう環境で起こって、どういう環境で起こらないのかははっきりわかっていません。 *********************** C:\phb1122\phoebe.htm ★ NT4/2000/XP で、16 ビットプログラムの実行結果が表示されない場合について Windows NT4/2000/XP で、LSI C-86 試食版を使って 16 ビットプログラムを作成して実行した際に、出力結果が表示されず、空欄になってしまう場合があります。この現象についていろいろ調査してみましたが、NTVDM.EXE の動作に原因がありそうというだけで、それ以上がどうしても分かりません。しかし、強制的に MS-DOS プロンプトを起動させられればうまくいくのではと考え、PIF ファイルを作成し、それを介して実行することで、とりあえず出力結果を表示させることに成功しました。メニューの「ビルド(B)」→「PIF を作成して実行(I)」をチェックすることで設定できます。このメニューは、LSI C-86 試食版をコンパイラに設定しているときのみ有効です。 敬具

  • C言語での実行

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

  • C言語を始めたのですが

    最近C言語を初めています。ソフトとしてCPad for Borland C++compilerを使っています。 初めの一日目はそれで作ったものを実行ボタンで実行できたのですが、 次の日からファイルを開いて実行を押してもそのファイルがある場所(デスクトップなど)が記されているだけて、何もプログラムが実行されません。 なにか押してみても '○○' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます。何か原因があるのでしょうか?もしも解消できるかたいれば教えてください。また、他に初心者におすすめなソフトを教えてもらえないでしょうか?今使っているのは今現在インストールできないみたいなのですが、他に使いやすいソフトあれば教えてください。 長くなりましたが、よろしくお願いいたします。

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

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

  • C言語の質問です

    ++ 演算子の(位置による)違いを調いと、その違いを示すプログラム(ソース及び実行結果)を教えてください

  • C言語のプログラミング

    九九計算の表を表示するプログラムを作成したいのですが、なかなかうまくいきません(;ω;`) ちなみに実行結果は   1  2 ……………………9 ----------------------------------------- 1: 1  2 … 2: 2  4 … 3: 3  6 … 4: 4  8 5: 5  10 6: 6  12  7: 7  14 8: 8  16 9: 9  18 とこんなかんじに できたらな…と。 よろしくお願いします<(_ _)>

  • C言語のことなんですが

    ある実行プログラムを作りたいのですが まず最初にメッセージボックスで文字を表示 はい/いいえ で はいを選択 そしてHDDのある場所を削除ってのです(ファイルとフォルダー全て) 例sakuzyoフォルダーってのがあるとします C:\sakuzyo\***.** をsakuzyoを消すもちろん中のファイルも って感じです できるでしょうか?

  • CでのCUIプログラミング 指定したファイルを生成する

    Visual C++でのCUIプログラミングをしています。 コマンドラインで文字を入力してもらうとその名前のバイナリファイルが生成される様にしたいのですが、どのようにプログラムを作ればいいのでしょうか? 「aaaa」と入力すると「aaaa.bin」というバイナリファイルが生成されるというプログラムを考えています。バイナリファイル名を入力する際に拡張子の入力が必要であれば「aaaa.bin」と入力してもらう形になっても構いません。

専門家に質問してみよう