問題タブ [ostringstream]

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.

0 投票する
2 に答える
714 参照

c++ - オブジェクト内のオブジェクトのベクトルを出力する

Orderオブジェクト(実際には s のベクトル)を印刷しようとしていますOrderOrderには、他のオブジェクトを持つベクトルを含む、いくつかのデータ メンバーがありますPurchase

vector<Purchase>tocoutを単独で印刷できます。メンバーを無視すると印刷できますvector<Objects>vector<Purchase>しかし、トリッキーな部分は、含めて印刷vector<Objects>することです。vector<Purchase>

これが私のコードです:

ご覧のとおり、に渡す前に をostringstreams格納する一時変数として使用するというアイデアがありました。しかし、これはいけません。この問題の良い解決策は何でしょうか?vector<Purchase>ostream& os

私は C++ の初心者で、ストリームのさまざまな使用法を学んでいるところです。

0 投票する
1 に答える
112 参照

c++ - インクリメント後に ostringstream が間違った int 値を取得する [c++]

これは私のコードの一部です:

タブを印刷すると、結果は 8 番目と 9 番目になります。

0 投票する
0 に答える
69 参照

c++ - >> 演算子を使用して文字列ストリームを停止し、ファイル ストリームから文字を取得します

stringstream の >> 演算子を使用すると何が起こるか、および << 演算子を後で再利用できない理由を理解するのを手伝ってください。

私はイタリア人の学生です。英語が下手ですみません。

他の方法でファイルから区切り記号を使用して解析できることは知っていますが、Boost などの変数やライブラリをあまり使用せずに簡単な方法が必要です。

詳細については編集済み:

top10.txt ファイルには以下が含まれます。

出力:

アプリケーションはエラーなしで実行されますが、明らかに画面に印刷されません

私が期待したこと。

0 投票する
1 に答える
180 参照

c++ - ostringstream を使用して浮動小数点数を固定表記法で出力し、香りの表記法を回避します

次のコードを使用して浮動小数点数を出力しています( valueis of type float):

ほとんどの場合、これで問題なく動作します。ただし、valueが非常に小さい場合、次のようなものが得られます。

私は次のことを期待していますが(9桁の固定表記):

したがって、これを達成するために std::ostringstream を使用する方法は何ですか?

0 投票する
2 に答える
983 参照

string - C++ - 破損した文字列

私は C++ にはまったく慣れていませんが、R 言語でのコーディングには慣れています。数週間前に、ファイル ペア (.seq/.ab1) をコピーして名前を変更する小さなアプリケーションの作成を開始しました。DNA シーケンサー分析の結果 (何百もの名前を手動で変更するのは、特に新しい名前のリストがあるため、リアルタイムの無駄になります)。

すべて問題ないように見えましたが、新しいファイル (コピーされたもの) の名前 (ファイル タイプの直前) に「特殊文字」が含まれて表示され、スペースのように見えますが、そうではありません (スペースに置き換えました)。 、ファイルが正しく開かれている)。ファイルを削除した後、関連するアプリケーションでファイルを開くことができますが、アプリケーションはファイルが破損していると主張します。

問題は ostringstream::str メンバー関数に関連するコードにあるようですが、正直、修正方法がわかりません。ファイルタイプを追加する前に、そこにヌル文字を挿入していないのだろうか...

これが責任のあるコードの部分です。「;」で区切られた 2 列の csv ファイルから古い名前と新しい名前を取得します。元のデータと新しい (名前が変更されたファイル) データは異なるディレクトリに保持されるため、for ループ内で各ファイル パスを含む文字列を作成する必要があります。おそらくmemcmpを使用して、後で古いファイルと新しいファイルの内容を確認するつもりです。しかし、最初にそれらの名前を正しく変更する必要があります。

私は、gcc 4.8.4 をコンパイラとして使用している Ubuntu 14.04 (64 ビット) マシンを使用しています。私はおそらく下手なコーディングと下手な英語をすでに言い訳しています。私はネイティブスピーカーではありません(実際にはライターです)。

0 投票する
1 に答える
766 参照

c++ - 指定された精度を観察して double を string にすばやく変換します

C++使ったプログラムがありSDLます。レンダリング中に、いくつかのグラフィックス コンポーネントを描画する必要があります。ときどきdouble、小数点以下 1 桁に丸められた変数を に変換する必要がありますstd::string

このために、私は現在ostringstreamオブジェクトを使用しており、正常に動作します。

ただし、変数を変換するこの方法がパフォーマンスに関して良い考えであるかどうかは疑問です。

doubleで変数を丸めようとしましたstd::to_string(std::round(x * 10) / 10))が、うまくいきませんでした2.500000000

  • 別の解決策はありますか?
  • ostringstream多額の費用がかかりますか?
0 投票する
2 に答える
846 参照

c++ - ostringstream メンバーを含むオブジェクトを構築できないのはなぜですか?

大規模なプロジェクトから簡略化した次のクラスの例があります。これは、ロガーのスコープを使用してデストラクタでログ エントリを終了するロギング フレームワークに基づいています。

以下のコードは、コンストラクターが暗黙的に削除された関数 ( edit: not true ) であるため、コンパイルされません。これは、std::ostringstreamオブジェクトと関係があるようです。を直接構築できるはずだと思うので、私はそれについて混乱しています。つまり、オブジェクトstd::ostringstreamを直接構築できるはずです。Container

「works fine」というラベルの付いた行がまさにそれを行っていることに注意してください。「世界」を出力するために直接アクセスできるContainernew を含む匿名オブジェクトをインスタンス化するようです。std::ostringstreamそれContainer自体がメッセージの「Hello」部分を作成し、そのデストラクタがバッファをフラッシュします。

Containerオブジェクトに名前を付けて保存する 2 番目の部分が正しく実行されないのはなぜですか? これが私が得るエラーのサンプルです:

... 等々。

0 投票する
4 に答える
180 参照

c++ - C++ ostringstream の奇妙な動作

最近、C++ コードで非常に奇妙な問題が発生しました。最小限の例でケースを再現しました。Egg クラスがあります。

卵を保持する Basket クラスもあります

したがって、期待どおりに機能する例を次に示します。

これは期待される結果ですが、いくつかのループ変数に応じて生成された名前で N 個の卵を追加したい場合、次の問題があります。

ループ条件を i<5 に変更すると、「Egg4 Egg4 Egg4 Egg4 Egg4」が得られます。最後に追加された Egg を動的 Egg 配列のすべてのインデックスに保存します。

Googleで検索した後、Eggのchar * name変数に固定サイズをstrcpy指定し、コンストラクターで使用すると問題が解決することがわかりました。

これが「固定」卵クラスです。

今、問題はなぜですか?

前もって感謝します。

ここにコード全体へのリンクがあります。