- 締切済み
BCB6 見せかけのステップ実行!?
今このように表記しているものを -----xxx.h---------------------------------------- void print( const State& s , const deque<State>& a) { cout << s << endl; for ( size_t i = 0 ; i < a() ; i ++ ) { cout << " " << a[i]; } cout << endl; -------------------------------------------------- ----main.cpp-------------------------------------- while( ! a.empty() { State s = a.front(); a.erase( a.begin() ); print( s ,a); cout << endl; } -------------------------------------------------- sとaの内容をメモリ(配列?)に書き込んで、その内容をButtonを押すごとに1ステップずつ表示したいのですが、どのように表記をしたら画面への出力ではなく、メモリに出力できるのでしょうか。 アドバイス、ご意見ございましたらお返事願います。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- KoHal
- ベストアンサー率60% (110/181)
以前よく似たコードを見たような気がするのですが、気のせいでしょうか? >画面への出力ではなく、メモリに出力できるのでしょうか。 この一点だけに答えれば、std::stringstreamを使うのが一番手っ取り早いかと思います。BCBなら「標準C++ライブラリヘルプ」のbasic_stringstreamの項を参照。 ただしソースをかなり書き換える必要がありそうです。 標準出力(cout)をそこら中に散らばらせたソースをWindowsに移植しようと思ったら、根本から書き直す覚悟が必要です。 ぱっと見の思いつきですが、print()を std::ostream& operator<<( std::ostream&, const State& ); std::ostream& operator<<( std::ostream&, const std::deque<State>& ); この2つに分割しちゃうのが簡単そうです。 これだと出力先が標準出力でもstringstreamでもその他でも同じコードで対応できますよ。 とりあえずはご自分の力でやれるところまでやってみて下さい。それでどうしても判らなかったら、そのわからない部分を具体的に質問してください。
お礼
お返事ありがとうございます。アドバイスのよう、取り組んでみたいと思います。