問題タブ [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++ - 自動的に追加するようにostringstreamを設定します
ostringstreamオブジェクトのデータを追加するにはどうすればよいですか?おそらく:
oss << 0x22
最後の既知の要素から自動的に実行するように設定するにはどうすればよいですか?フラグを設定する必要があることを読み通しましたが、どうすればよいですか?
編集:質問について非常に漠然としていて申し訳ありません。コーヒーがすり減っているプロリー。上記の私の質問から拡張します:
ostringstream oss(osstringstream::app)
毎回追加するように設定していますか?私の目標は文字列を作成することです。
c++ - istream >>ostream<<演算子のオーバーロード*ポインタ
>>および<<演算子がポインターを処理している場合、それらをオーバーロードするにはどうすればよいですか?
ヘッダー内:
CPPで:
c++ - uint8をintとしてostreamに自動的に表示する処理
uint8型のメンバーを持つクラスがあり、それをostreamに出力しようとすると、char表現として表示されます。私はそれがint表現であることを好むので、毎回static_cast(myStruct.member)を実行する必要があります。これは少し面倒で、エラーが発生しやすい可能性があります。何か案は?
string - ostream を文字列に変換します (sstream ではありません)。
特に、ostream を文字列に変換する必要があります。より正確に言うと、次の関数があります。
(この関数は、主に << 演算子のポリモーフィックなオーバーチャージに使用されます) この場合、ostream にあるものを文字列に取得する必要があります。いくつかの調査の後、私はこれを試しました:
ただし、文字列には 0 のみが含まれます。誰かがこれに対する解決策を持っていますか?
ありがとうございました
c++ - シリアライゼーション コードのプロファイリング
アプリを 2 回 (VS IDE で) 実行しました。初回は33秒かかりました。多くのコードを呼び出す obj.save のコメントを外しましたが、87 秒かかりました。それはいくつかの遅いシリアル化コードです! 私は2つの問題を疑っています。最初は私が以下を行うことです
私はこのテンプレートを何十万回も呼び出しています (まあ、それほど多くはないかもしれません)。各 .write() は、速度を低下させている可能性のあるロックを使用していますか? たぶん、ロックを必要としないメモリストリームを使用して、代わりにダンプできますか? ロックされず、おそらく単一のスレッドでのみ使用されることに依存する、どのostreamを使用できますか?
もう 1 つの疑わしい問題は、dynamic_cast を多用していることです。しかし、これを回避できるかどうかはわかりません。
これは、ostream の代わりに fopen を使用するように変換した後の簡単なプロファイリング セッションです。このリストに自分の関数の大部分が表示されないのはなぜだろうと思いますが、ご覧のとおり、書き込みがまだ最も長くかかっています。注:出力ファイルが半分のギグであることを認識しています。おっとっと。多分それが理由です。
c++ - C++ のプラットフォームに依存しない /dev/null
重複の可能性:
no-op std::ostream の実装
c ++でNULLに相当するストリームはありますか? ユーザーが内部をどこかに出力したい場合はストリームを受け取る関数を書きたいのですが、そうでない場合、出力は偽の場所に行きます
やるdata()
かを選べるようになりたいdata(std::cout)
c++ - YAML::エミッタストリームサイズ
私はC++で書かれた反復アルゴリズムを持っています。私はyaml-cppを使用しています。反復ごとに、YAML::Emitterオブジェクトにデータを送信します。アルゴリズムが終了したら、YAML :: Emitter :: c_str()を使用して基になるバッファーをofstreamに書き込みます。
ただし、バッファをファイルに数百回の反復ごとに増分的に書き込み、増分ごとにYAML::Emitterオブジェクトから書き込まれたデータをクリアすることをお勧めします。これには2つの理由があります。
1)プログラムが予期せず終了した場合に備えて、ディスク上の出力に(可能な限り)アクセスできるようにしたい。
2)YAML :: Emitterオブジェクトは自己拡張し、メモリを無駄にしたくありません。
これについて行くための最良の方法は何ですか?
c++ - ostream の << 演算子をオーバーロードできないのはなぜですか?
編集: 式 exp と文字列式を const 参照で渡しました
次の方法でクラスを cout 経由で表示できるようにしようとしています。
ただし、コンパイル時にエラーが発生します。
ostream
と入力すると、VC++ がオートコンプリートの提案をしてくれるので、これは特に混乱を招きますstd::
。これらのエラーの原因と解決方法を教えてください。
c++ - オーバーロードされた<<挿入演算子が正しく機能していません
そのため、挿入演算子がリストクラスで機能しない理由がわかりません。私はしばらくそれを見てきましたが、構文はオーバーロードに対して正しいと思います。これについてはよくわかりません。なぜそれが機能しないのかについてのヒントはありますか?コードは次のとおりです。
編集:いくつかのコードを現在のコードに変更しました。
申し訳ありませんが、特に今の問題は、何も印刷できないことです。単純な印刷と空の行です。
これがドライバーです:
ヘッダーは次のとおりです。
実装は次のとおりです。
c++ - ostream/ofstream 継承の問題
C++ プログラムを書いていますが、エラーを理解するための助けが必要です。
デフォルトでは、私のプログラムは端末 (STDOUT) に出力します。ただし、ユーザーがファイル名を指定すると、プログラムはそのファイルに出力します。端末に書き込む場合はstd::cout
オブジェクトを使用しますが、ファイルに書き込む場合はオブジェクトを作成して使用しstd::ofstream
ます。
ただし、端末またはファイルに書き込む必要があるかどうかを継続的に確認する必要はありません。std::cout
とオブジェクトの両方がクラスstd::ofstream
から継承されるため、オブジェクトを受け入れるstd::ostream
一種の関数を作成することにしました。この関数を呼び出す前に、ファイルに出力する必要があるかどうかを確認します。その場合は、オブジェクトを作成して print 関数に渡します。そうでない場合は、単純に print 関数に渡します。印刷機能は、印刷先を気にする必要はありません。print_output
std::ostream
std::ofstream
std::cout
これは良いアイデアだと思いましたが、コードをコンパイルできません。ここでは、単純化しすぎた例を作成しました。これがコードです...
...そしてここにコンパイル時のエラーがあります。
これらのエラーが発生する理由について何か考えはありますか? 何か間違ったコードを書いたのでしょうか、それとも私のアプローチに根本的な問題がありますか?
ありがとう!