問題タブ [lexical-cast]
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++ - マップ タイプ c++ に基づいて csv を解析およびキャストする
csv を読み取り/書き込みし、渡されたマップ (ネストされている可能性がある) に応じて型を推測し、マップにデータを入力するライブラリや例を知っている人はいますか?
これには、再帰的なテンプレート化されたコードが含まれる可能性があります。
つまり
map<int, map< double, map< string, double > > >
、123,93.003,BLAH,42.24 の形式の csv が必要です。
または
map<Date, map< string, vector< double > > > // arbitary length vector
2013 年 1 月 1 日、BLAH、0.1、0.2、0.3、0.4.....0.99
ありがとう。
c++ - 文字列が数値かどうかを C++ チェックする
an が数値かどうかを確認する必要がありstd::string
ます。数値とは、整数または小数点付きの数値 (基数 10) のいずれかを意味します。
私はlong long
気にしない外部のものを提供する制限に問題はありません。ブーストはありませんが、コピーしましたlexical_cast
。
文字列が実際に機能することを確認するためにキャストするようdouble
ですが、私が考えていないコーナーケースがあるかどうか疑問に思っています。
編集
浮動小数点数
私は C++0x/C++11 を使用していないため、正規表現を使用して浮動小数点数を簡単に検証することはできません。そして、文字列を自分で解析する必要がないようにしようとしています。これは、何も欠落していないことを確認するために、さらに単体テストを行う必要があることを意味します。
NaN を使用すると、プロパティfloat1 != float1
があることはわかっていますが、GCC はこれを台無しにします。
c++ - スピリット浮動小数点数パーサーの精度を高める
boost::lexical_cast とブースト スピリットの解析を比較すると、奇妙なことに気付きました。文字列をフロートに解析しようとしています。何らかの理由で、精神は非常に不正確な結果をもたらします。例: lexical_cast を使用して文字列 "219721.03839999999" を解析すると、219721.03 が得られますが、これはほぼ問題ありません。しかし、スピリットを使用すると(以下のコードを参照)、「219721.11」が表示されますが、これは問題ありません。なぜそれが起こるのですか?
c++ - レキシカルキャスト文字列を2倍にブースト
私はあなたの助けが欲しい変換の問題に直面しています. 私は gcc4 コンパイラを使用していますが、gcc4 の使用はかなり制限されています。
std::string を double に変換したい。
ちなみに、私も試しatof
ましたが、まだ同じ問題があります。で示される正しい値を取得するためにistringstream
withを使用する方法はありますか?setprecission(2)
aAmount
c++ - boost::lexical_cast int を文字列にゼロでパディング
生成された名前でファイルを作成する必要があります。boost::lexical_cast
整数を に変換するために使用しますstd::string
。パディングゼロで文字列を取得する可能性はありますか; 私にはありません。サポートするものはc++11 tools
すべてありMSVS 2008
ます。
例 :
ps sprintf の使用はお勧めしません。
c++ - Boost の lexical_cast はいつ使うべきですか? それは最終手段のメカニズムですか?
Boost はlexical_cast
数値 (または任意のオブジェクト) を文字列に変換し、元に戻します。std::stringstream
たとえば、物事をsにストリーミングする代わりに、それをもっと使用しようとする必要がありますか? それとも、最終手段のメカニズムですか?
2 つの代替アプローチの例を次に示します。
また
(ただし、私の質問はより一般的であることに注意してください)。
c++ - オーバーロードされた演算子 ">>" での bad_lexical_cast 例外
列挙型の演算子 ">>" をオーバーロードしました:
私が得ている出力:
「boost::exception_detail::clone_impl」のインスタンスをスローした後に呼び出される Hello World 終了
' what(): 字句キャストが正しくありません: ソース型の値をターゲットとして解釈できませんでした
lexical_cast_39.hpp (1155) から例外がスローされます。
演算子は、空の文字列を除くすべての値に対して機能します。オペレーターから返される入力ストリームは、最初から同じストリームです。
そのような問題に対する許容可能なアプローチは何ですか? ありがとう!
c++ - Casts ユーティリティの名前空間を実装する方法
Casts
多数のキャスト関数を保持する名前空間を生成するとします。
boost:lexical_castアプローチが本当に好きです。例えば:
Casts
私の質問は、エレガントで統一された堅牢な方法で実装するための他の可能なアプローチはありますか? 私にとって理想的な方法は、ネイティブの軽量アプローチを採用することです。