問題タブ [istringstream]
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++ - istringstreamを2回使用する方法
重複の可能性:
C++ - istringstream を繰り返し使用する
このコードを考えると:
1 行を読み取り、その行を string から int に変換します。
しかし、次の行を読んでもう一度やりたい場合:
私はこれを得る:no match for call to '(std::istringstream {aka std::basic_istringstream<char>}) (std::string&)'
次の行を読んで int に変換するにはどうすればよいistringstream
ですか?
よろしく
c++ - istringstream は長い数値を丸めます - どうすればそれを防ぐことができますか?
次のコードを考えると:
出力は2.111
です。
長い数値、浮動小数点数 (浮動小数点を含む) を操作できるようにしたいのですが、istringstream
double に変換すると、丸められた数値が得られます。
どうすればそれを防ぐことができますか? 指定された入力をそのまま維持するにはどうすればよいですか?
よろしく
c++ - 単語間の空白を保持するためのwordwap関数の修正
少し前に、単語を分割せずに特定のサイズの行の長さでワードラップを実行するためのスニペットを探していました。十分に機能していましたが、編集コントロールで使用し始めたときに、間にある複数の空白記号を使い果たしていることに気付きました。wstringstreamがタスクに適していない場合は、修正する方法、または完全に削除する方法を検討しています。多分そこに誰かが同様の機能を持っていますか?
折り返し線の区切り記号はそのままにしておく必要があります\r
c++ - 任意の数のスペースを含む入力文字列の一部を読み取る
私は、ユーザーが学校の記録に「学部」を追加できるようにするプログラムに取り組んでいます。部門は次のような構造体として保存されます。
レコードに新しい部門を追加するには、ユーザーは次のような形式のコマンドを入力する必要があります。
この[Department name]
フィールドは、ユーザーがEnterキーを押すまで続く文字列です。したがって、任意の数のスペースを含めることができます(たとえば、「人類学」または「コンピュータサイエンスおよびエンジニアリング」)。
ユーザーがコマンド文字列を正しく入力すると(で取得getline
)、関連情報を抽出してレコードを保存する関数に渡されます。
残念ながら、このアプローチを機能させる方法がわかりません。空白を無視してiss.strを読み終える方法が必要です(ある場合)。フラグを設定しましたnoskipws
が、テストしたときに新しいレコードの名前フィールドが空でした。
終了条件/文字について何かが足りないと思います。他にどのように私が望む機能を作成することができますか...多分何かget
またはループさえありますか?
c++ - istringstream() (おそらく) メモリリーク
大きなテキスト ファイル (~300MB) からベクトルの配列にデータを読み込むとします (vector<string> *Data
列数が既知であると仮定します)。
このコードは小さなファイル (<50mb) では正常に機能しますが、大きなファイルを読み取るとメモリ使用量が指数関数的に増加します。istringstream
ループのたびにオブジェクトを作成することに問題があると確信しています。istringstream iLine;
ただし、両方のループの外側で定義し、各文字列をストリームに入れiLine.str(s);
、内側の while-loop ( iLine.str(""); iLine.clear();
) の後でストリームをクリアすると、同じ順序でメモリ爆発が発生します。発生する質問:
- なぜ
istringstream
このように振る舞うか; - それが意図した動作である場合、上記のタスクをどのように達成できますか?
ありがとうございました
編集:最初の答えに関しては、コードの後半で配列によって割り当てられたメモリをクリーンアップします:
FULL COMPILE-READY CODE (ヘッダーを追加):
istringstream - sscanfからistringstreamへの混乱C ++
istringstream を使用して、次の C コードを C++ に変換したいと考えています。
私がこれまでに持っているものは次のとおりです。
エラーが発生します。私は istringstream にはあまりにもなじみがなく、修正するために何をすべきかわかりません。私の間違いについての洞察を期待しています。s は、スペースを含まない文字列と整数 (Good123 など) であると想定されており、整数を削除して i に配置したいと考えています。
c++ - 単語の除算がゼロで正しく機能しない
最近、私はファイナルのスニペットを書くことに取り組んでいます。一般的なタスクの 1 つは、文字列 (std::string) を単語に分割することです。場合によっては、これらの文字列に整数を含めることができます。
私はスニペットを書きました:
問題はありますが、動作します。005 ではなく str から 5 を取得しました。VC++ はすべてのゼロを縮小しているようです。(string.h/cstring の strtok ではなく) C++ 関数のみを使用して回避するにはどうすればよいですか?
MS VC++2008 と gcc の両方で入手できます。
ありがとう!
c++ - C++ 文字列ストリームから char* への変換メモリ割り当て
次のコードがどのように機能し、アプリケーションをクラッシュさせないかを誰か説明できますか?
私は次のように出力を得ています
stringstream
char ポインタの余分な文字にメモリを割り当てましたか?stringstream
また、割り当てられたメモリを超えずに、データを char* 配列にコピーする正しい方法を知りたいchar*
ですか?
c++ - istringstream無効エラー初心者
私はこのコードを持っています:
istringstream
演算子 rightを使用しているかどうかわかりません。変数「値」を整数に変換したい。
どうすれば直せますか?
最初に与えられた答えで修正しようとした後。次のエラーが表示されます:
それを乗り越える方法はありますか。私が現在使用しているコードは次のとおりです。
c++ - istringstreamオブジェクトを文字列と文字配列に変換するには?
私はこのオブジェクトを持っています:
仕事のために、このオブジェクトを文字列と文字配列に変換する必要があります。実行する方法?