ページ 11

コンソール出力の再利用

Posted: 2011年6月09日(木) 09:12
by aria
先日はありがとうございました。
C言語のコンソール入出力で質問があります。
プログラム内でputs関数やprintf関数などを使用して、コマンドライン上に文字などを出力しますが、
これら出力した値を何らかの変数に保存して再度出力って出来ないんですかね。
調べてみたら、上の二つなどはstdoutに値を書き込んでいるという内容を発見したので、
stdoutを出力してみたんですが、I9という文字が出力されるだけでした。
ご助力お願いいたします。

Re: コンソール出力の再利用

Posted: 2011年6月09日(木) 09:31
by non
質問の意味がよくわかりません。
自分で作っているプログラムからprintfなどで出力されているのであれば,printfする前に,格納しておくことは可能ですよね。
他人が(またはプログラムが変更できない)プログラムを実行した後,コンソールに出力された文字を取り出したいということでしょうか?

Re: コンソール出力の再利用

Posted: 2011年6月09日(木) 10:02
by aria
説明不足でした。すみません。

出力結果を再利用する関数を作ろうとしていると考えていただければよいかと。

出力される回数、変数や文字定数は、行う処理によって変わってきます。
処理によってはコンソール入力した内容などもコマンドラインに反映されています。

毎度、その処理の出力内容に合わせて変数、フォーマットを用意するより
コマンドライン上に出力されている文字列群をそのまま使えないかと考え、
質問させていただきました。

Re: コンソール出力の再利用

Posted: 2011年6月09日(木) 11:45
by さかまき
linux なら script コマンドなんでしょうが
ちょっと検索すればいろいろあります。たとえば
http://d.hatena.ne.jp/Wacky/20061112/1163339269
http://d.hatena.ne.jp/Wacky/20080420/1208698669

行数に制限ありますが、DOS窓の画面バッファーサイズを多めに取って
あとでコピペするのが一番お手軽。

Re: コンソール出力の再利用

Posted: 2011年6月09日(木) 11:48
by softya(ソフト屋)
Win32APIで取得できたはずですが画面がバッファリングされる量にも限度があります。
あと、どの位置に描画されたかはどうやって管理するのでしょうか?

参考
「Win32API コンソールスクリーンバッファ情報を取得する GetConsoleScreenBufferInfo - s-kitaの日記」
http://d.hatena.ne.jp/s-kita/20100925/1285380726