これはいくつかのための非常に明白な質問かもしれませんが、私はこのエラーでどこから始めるべきか分かりません。C++のstoiは時々スペースを含む例外を送信します
私はいくつかの文字列を.txtファイルから読み込み、すべての文字列に ":"がついています。例:色あたり
オブジェクト:ロボットの1
量:10の
定義済み位置:1
I手で値を編集すると、STOIが正常に動作するが、AC#コード同じファイルに値を書き込みます(私は手でチェックしていますが、同じもの、余分なスペース、余分な文字、視覚的に違うものはありません)。私のコードは次である:
C++:
cout << "Number..." << endl;
cout << dataLine.substr(dataLine.find_first_of(":")+1) << endl;
try{
cfgVals.push_back(stoi(dataLine.substr(dataLine.find_first_of(":")+1)));
}catch(exception& ex){
cout << ex.what() << endl;
}
は両方の場合において、データ線のCOUTは、次にスペースと番号 "1" または "10" を送信します。ファイルが私によって編集されるとき、stoiは例外をスローしませんが、他のプログラムによって編集されます(それにもかかわらず、とにかく変換権をとっているようです)。私はC#でファイルを書き込むために使用
コマンドは非常に簡単です:paramは文字列のリストがある
File.WriteAllLines(@nameFile, param);
。
私は十分に、任意のアイデアを希望ですか?前もって感謝します!
を持っている唯一の場所は、あなたがこれまでの文字エンコードについて考えるかであると仮定すると、仕事をすればよいですか?おそらくあなたの "C#"書き込みファイルを 'UTF-8'とし、 'stoi'が 'ASCII'を扱っていることを知っているでしょう –
例外は何ですか?つまりex.what()は何を返しますか? –
@ Freeman Zhang、あなたは何かまであるかもしれない...病気はそれを見ている。 – gkapellmann