問題タブ [ostream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - プログラムで Cout を無視する
cout <<
すべての機能を切り替えて、目に見える出力を出力しないようにするトリックがあるかどうか、誰かが知っていますか? 私と他の人が書いたコードをハックして、デモをまとめようとしています。出力をファイルにリダイレクトするのではなく、Windows と Linux の間である程度の互換性を持つソリューションが必要です。
#defines
私のシナリオでは、特定のメソッドがデバッグ出力を生成するときにさまざまな制御を行うコード行が多数あります。私は次のようなものを呼び出したい:
c++ - ストリーム演算子の C++ 部分テンプレート特殊化
operator<< で使用するフレンド関数を持つ Matrix クラスがあります。これはすべて正常に動作しますが、Matrix クラスがそのテンプレート パラメーターとして Matrix を持っている場合 (つまり、クラスのインスタンスが Matrix< Matrix< char > > のように宣言されている場合) に異なる動作をするように、そのフレンド関数を部分的に特化したいと考えています。クラス定義で最初に持っていた
そして追加してみました
しかし、これにより、コンパイラから複数の宣言エラーが発生しました。これを達成する方法がわかりません。
c++ - ostream operator<< を配列でオーバーロードするにはどうすればよいですか?
operator<<
サイズが不明な配列の内容を出力するためにオーバーロードするのに問題があります。私は解決策を探しましたが、私が見つけた唯一の方法は、すべてのプライベート データ メンバーを構造体に入れる必要があるというものでした (これは私には少し不必要に思えます)。関数を編集してフレンドにしたり、 (または const)に変更*q
したりすることはできません。&q
これが私の << オーバーロード コードです。
そして、ここに私のプライベートデータメンバーがあります:
関数の呼び出し方法は次のとおりです (これは編集できません)。
出力のフォーマット方法は次のとおりです。
配列が空の場合、
どんな助けでも大歓迎です。ありがとうございました!
c++ - coutを静的ostream参照変数に正しく割り当てるにはどうすればよいですか?
私はこのようなクラスを定義しています:
コンストラクト関数を次のように定義しています。
テスト(std :: ostream&)にcoutを割り当ててもコンパイルしても問題ない理由がわかりませんが、コンパイラーは「stdout1_=cout」のような残りのエラーメッセージを生成します。エラーメッセージは次のとおりです。
これらのostream参照変数にcoutを正しく割り当てるにはどうすればよいのでしょうか。ありがとう!
c++ - 「<<」をオーバーロードしようとしたときの構文エラー:パラメータが多すぎます
私はしばらく探していましたが、答えに最も近いものはあそこにありました
しかし、クラスでそれを機能させることができませんでした。
私はTable2D.h
これを含むを持っています:
そして私はこれを含むテンプレートクラスを持ってTable2D.template
います:
mainからtoString()関数を呼び出すと、正しく機能します。<<
ただし、を使用してオペレーターを呼び出すとstd::cout
、次のエラーが発生します。
59行目に含まれていることがわかります
ご覧のとおり、これには'が含まれていない<<
ため、何を指しているのか完全にはわかりません。
編集:
クラスから宣言を削除した後、ヘッダーファイルのエントリを次のように置き換えました
次のエラーが発生しました:
テンプレートファイルの89行目にはstd::stringstream resultStream;
これは私のtoString関数の最初の行で、次のようになります
c++ - C++ またはライブラリに null の std::ostream 実装はありますか?
std::ostream
のように動作する実装を探してい/dev/null
ます。ストリーミングされたものはすべて無視します。そのようなものは標準ライブラリまたはBoostに存在しますか? それとも自分で巻く必要がありますか?
c++ - ostream演算子のオーバーロード-継承
Itemという基本クラスがあります:
そして私は派生クラスのタワーを持っています:
Towerのソースコード:
今、私はコードをテストして、演算子のオーバーロードが正しく機能するかどうかを確認しようとしています。
コードから理解できるように、カードは整数値の距離と列挙値の方向を保持します。私もそのコードを含めたら、それは混乱していたでしょう。コードtest()の最後の部分で質問にコメントしました。よろしくお願いします。
c++ - std::showbase と std::showpos は相互に排他的ですか?
ostream & operator << (ostream &, some_type)
この質問は、C++ で通常の数値型を使用して数値を出力する正しい方法についての議論から生じました。
各ベースでの std::showbase と std::showpos の動作に精通している方法では、基本的に相互に排他的です。つまり、10 進数では基数は表示されず、正の数には「+」が追加されます。一方、16 進数または 8 進数では基数が表示されますが、型の値が符号なし型にキャストされたかのように出力されるため、「+」は表示されません (マイナスも表示されません)。
たとえば、次の単純な (冗長な) プログラムは次のとおりです。
GCC でコンパイルすると、次の出力が得られます。
これは、長年 C++ を使用してきた私が常に期待していたことですが、これは本当に標準によって保証されているのでしょうか、それとも単なる一般的な動作なのでしょうか? たとえば、標準準拠の C++ コンパイラは、代わりにこれらのシーケンスの 1 つを出力できますか?
あるいは:
c++ - c++istream演算子>>
オペレーターに問題があります>>
送信されたマトリックスに依存しないようにforループを変更したいので、istreamオペレーターのサイズを変更したいのです。つまり、サイズ1のマトリックスとストリームを送信してから、[1 2 3 4; 4 5 6 7; 1 2 3 4]
次の新しいマトリックスを送信します。サイズ(3 * 4)を作成する必要があります。代入演算子を使用して行列Mに代入できるようにします。
言い換えれば、ストリームはフォーム上に"[ 1 2 3; 2 3 4; 4 5 6]"
あり、; 新しい行を意味します。行と列がいくつあるか知りたいです。