問題タブ [stringstream]

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 投票する
8 に答える
80964 参照

c++ - istringstream、ostringstream、stringstreamの違いは何ですか?/すべての場合にstringstreamを使用してみませんか?

いつ使用しますか。またstd::istringstream、すべてのシナリオで使用する必要がないのはなぜですか(実行時のパフォーマンスの問題はありますか?)。std::ostringstreamstd::stringstreamstd::stringstream

最後に、これについて何か悪いことはありますか(ストリームを使用する代わりに):

0 投票する
5 に答える
8842 参照

c++ - stringstream を使用してバイト値を取得する

stringstream から値を取得し、それをバイト サイズの変数に格納するためのこの (正しくない) サンプル コードがあります (int ではなく、1 バイトの var である必要があります)。

これを実行したときの出力は 49 ですが、これは私が見たいものではありません。明らかに、これは単純な数値ではなく char として扱われます。intにキャストされたときにcに49ではなく1を保持させる最もc++っぽい方法は何ですか?

ありがとう!

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

c++ - stringstream は、符号なしの型で負の値を「ストリーミング」できませんか?

gcc4.4 を使用する Ubuntu 10.04 でも同じ問題が発生します。gcc4.1 を使用する RH 5.5 でも同じコードが正常に動作します。

は FAILED を与えません、私はすでにこれを見つけました:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39802

gcc4.1で修正されたと記載されていますが、そのミスの振る舞いが(何かが欠けていない限り)同じ問題に関連しているかどうかはわかりません。

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

c++ - C++であるstringstreamオブジェクトから別のstringstreamオブジェクトにコピーする方法は?

私はstd::stringstreamオブジェクトを持っていますss1。ここで、このコピーから別のコピーを作成したいと思います。

私はこれを試します:

また:

どちらも機能しません

エラーメッセージは次のようになります。

std::ios::basic_ios(const std::ios &) は、bsl::basic_stringstream、bsl::allocator>::basic_stringstream(const bsl::basic_stringstream、bsl::allocator>&) からアクセスできません。

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

c++ - 読み取ったファイルから単語を分割する

テキスト ファイルの内容をクラスの属性に読み込もうとしています。このファイルは、クラスの 1 つのオブジェクトに必要なすべての情報が各行に含まれるように構成されています。1 行は次のようになります。

私がやっていることは、getline()次のような関数で、ファイルからストリームへの行を読み取ることです:

はクラスTycDatの名前、 はクラスをtarget格納するベクター、 はsource既にファイルを指しているファイル ストリームです。

のコンストラクター内で、パラメーターに関連付けられたTycDatを作成し、演算子を使用して値を順番に属性に読み込みました。これはほとんどの場合うまくいきました。それらのいくつかを読み取ることができるように、いくつかの配列を作成する必要がありました。たとえば、オペレーターが分割したものに対応します。std::istringstreamstd::stringline>>charhd 210531string>>

私の本当の問題は、最後の部分の 1 つ、例では8.80 P F5 5 6440. F5 は実際には文字と数字の 2 つの値であり、char と int として別々に格納する必要があります。さらに、最後の int が常に存在するとは限りません。

私が今していることは、Pを正しく読んだ後です:

私はそれが好きではありません。主な理由は、新しいstring. しかし、それを正しく機能させる方法がわかりませんでした。問題は、単語を分割することです ( ignore1 つの文字を使用TClass = iss.get()して getを使用できるとTClass思いますが、読み取る前に次の値が存在することを確認する方法がわかりません。

うーん、 とはpeek異なる値を探して' '、演算子を使用でき>>ます....

まあ、私はそれを試してみて、それがどうなるかをあなたに知らせます. 助けてくれてありがとう。その他のコメントをお待ちしております。ここまで書いて質問を消すのは申し訳ないです。

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

c++ - C++ で stringstream と int 変数を使用して、入力が int であることを確認する


このコードは、my_string の内容を ft に入れようとすることで、入力が整数かどうかをテストすることになっています。整数の代わりに文字を入力すると、「無効な入力です!再試行してください」というエラー メッセージが表示されます。起こるはずです。問題は、そのメッセージを一度取得した後、次の入力が有効であっても、その後のすべての入力に対してメッセージを取得することです。


std::cin.clear();を使用する必要があると誰かが提案しました。エラーフラグをクリアします。getline() の前に置いてみましたが、問題は変わりませんでした。私はこれを間違って使用していましたか?

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

c++ - ostringstream で浮動小数点数を丸める

ostringstream を使用した float から c++ 文字列への変換に関して問題があります。これが私の行です:

t の値が -0.89999 の場合は -0.9 に丸められますが、値が 0.0999 またはこれよりも小さい場合 (たとえば 1.754e-7)、丸めなしで印刷されます。これに対する解決策は何ですか。

0 投票する
3 に答える
11770 参照

c++ - 動的サイズで文字列ストリームを読み取る方法は?

課題のために stringstream を試してみたかったのですが、それがどのように機能するかについて少し混乱しています。簡単に検索しましたが、私の質問に答えるものは見つかりませんでした。

動的なサイズのストリームがあるとします。変数への書き込みを停止するタイミングをどのように知ることができますか?

私の出力は次のようになります。

特に _M_in_cur = 0x1001000d7 ""

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

c++ - std::stringstream はどのように wchar_t* を operator< で処理しますか?

次のスニペットがコンパイルされないとします。

私はこれもそうするとは思わなかった:

しかし、そうです(少なくともVC ++では)。これは、次のostream::operator<<過負荷が原因であると推測しています。

うっかり文字の種類を混ぜてしまうと、コードが静かに壊れてしまう可能性はありますか?


Pythonでバイト単位のUTF-8文字列のサイズを取得するにはどうすればよいですか

次のようなUTF-8文字列を持つ:

Python (2.5) で (メモリ内の) サイズをバイト単位で取得することは可能ですか?

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

c++ - num_getファセットとstringstreamのブール値への変換-初期化されたブール値で失敗しますか?

文字列を数値に変換するためのテンプレートを継承し、それをブール値に変換するために適用したいと思います。私はstringstreamクラスとlocaleクラスの経験があまりありません。私は奇妙な振る舞いをしているようですが、誰かが私にそれを説明してもらえないかと思います。

ブール変換を試すまで、これは正常に機能します

私は問題を追跡するのに少し時間を費やしました。ロケールのtruename()が「true」を返すことを確認しました。

問題は、変数numの初期化にあるようです。テンプレートをこれに変更すると、機能します。

なぜそれが機能するのですか?「0」でブール値を初期化するのは間違っていることを認めますが、なぜこれによりSStream>>num変換が失敗するのでしょうか。