電子書籍の厳選無料作品が豊富!

コマンドライン上に出力された結果を、コマンドライン上でファイル名を指定し、テキストファイルとして保存することは出来ますでしょうか?
作成するファイルは、作業中のフォルダに新規作成する、としたいのですが…

たとえば、
カレントディレクトリが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言語でこのようなコトをするのは不可能であるのならば、『無理ですよ』という旨を伝えて頂ければ結構でございます。

A 回答 (3件)

できますよ。


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

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

お礼日時:2005/04/27 11:32

リダイレクトすればよいのでは?


bbb.exeの標準出力をccc.txtに書き込むのであれば、

bbb > ccc.txt

ですみます。
どうしてもC言語で実現したのであれば、#1の方が回答されているように、printf → fprintfのように書き換えるか、freopenでstdoutを別のファイルに結びつければ可能になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/27 11:41

ちなみに、UNIXには、まさにその目的のための


script
というコマンドが存在します。

$ script ファイル名
とすると、それ以降のコマンド入力と出力の内容が、ファイルに出力されていきます。
最後は
$ exit
で終わります。
Linuxなどが身近にあれば、そのソースを見てみてはいかがでしょうか?無くてもWebで探せばあるのでは・・・??
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/27 11:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!