• ベストアンサー

名前をつけて保存する

コマンドライン上に出力された結果を、コマンドライン上でファイル名を指定し、テキストファイルとして保存することは出来ますでしょうか? 作成するファイルは、作業中のフォルダに新規作成する、としたいのですが… たとえば、 カレントディレクトリがC\:/aaaであるとして、 bbb.cを実行したとき、 ----- 以下コマンドライン上の出力 ----- C:\aaa>aaa 1~nまでの素数を表示します nを入力 : 50 1~50までの素数は 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 です。 保存するファイル名を入力 : ccc.txt (ccc.txtと入力してenterを押すと保存) C:\aaa -------------- ここまで -------------- 上記の結果の、『1~nまでの…』から『です。』までを、ccc.txtとしてディレクトリC\:/aaaに新規作成したいのですが… どなたか出来る方がいらっしゃいましたら、ぜひご教授お願い致します。 もし、C言語でこのようなコトをするのは不可能であるのならば、『無理ですよ』という旨を伝えて頂ければ結構でございます。

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

  • ベストアンサー
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

できますよ。 ファイルに保存するのではなくコマンドライン上でなら 質問者の方は出来るのですよね? コマンドラインに表示する際に使用する関数printfが ありますがこれと同じような関数fprintf を利用すれば 出来ます。

kanami_6_18
質問者

お礼

fprintfなんて関数があったんですね。 無知ゆえに、そんな関数があることを知りませんでした… fprintfを使うコトで、いとも簡単に出来ました。 どうもありがとうございました。

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

リダイレクトすればよいのでは? bbb.exeの標準出力をccc.txtに書き込むのであれば、 bbb > ccc.txt ですみます。 どうしてもC言語で実現したのであれば、#1の方が回答されているように、printf → fprintfのように書き換えるか、freopenでstdoutを別のファイルに結びつければ可能になります。

kanami_6_18
質問者

お礼

今回はCのプログラムの中で実現したかったので、#1の方の方法を使わせていただきました。 ご回答いただき、大変ありがとうございました。

  • du0315
  • ベストアンサー率20% (1/5)
回答No.2

ちなみに、UNIXには、まさにその目的のための script というコマンドが存在します。 $ script ファイル名 とすると、それ以降のコマンド入力と出力の内容が、ファイルに出力されていきます。 最後は $ exit で終わります。 Linuxなどが身近にあれば、そのソースを見てみてはいかがでしょうか?無くてもWebで探せばあるのでは・・・??

kanami_6_18
質問者

お礼

私はどうにもUNIXにあまり良いイメージがないもので、もっぱらWinユーザーです(笑 でも友人がUNIX環境なので、教えてあげたいと思います。

関連するQ&A