このコードは、文字列を float/int/double に変換するためのテンプレートとしてオンラインで見つけました。ここだけなので質問の参考にさせていただきます…。
ユーザーに数値を文字列として入力させ、それをフロートに変換し、成功するかどうかをテストし、エントリが「Q」の場合はドロップアウトするか、「Q」の文字ではない場合は「無効な入力」を出力し、さらに入力するために戻ります。
変換失敗テストの構文は何ですか? ss.fail() でしょうか?
// using stringstream constructors.
#include <iostream>
#include <sstream>
using namespace std;
int main () {
int val;
stringstream ss (stringstream::in | stringstream::out);
ss << "120 42 377 6 5 2000";
/* Would I insert an
if(ss.fail())
{
// Deal with conversion error }
}
in here?! */
for (int n=0; n<6; n++)
{
ss >> val;
cout << val*2 << endl;
}
return 0;
}