だから私は文字列を整数に変換するために文字列ストリームを使いたい。
すべてが次のように行われると仮定します:
using namespace std;
うまくいくと思われる基本的なケースは、私がこれを行うときです:
string str = "12345";
istringstream ss(str);
int i;
ss >> i;
それはうまくいきます。
ただし、次のように定義された文字列があるとしましょう。
string test = "1234567891";
そして私は:
int iterate = 0;
while (iterate):
istringstream ss(test[iterate]);
int i;
ss >> i;
i++;
これは私が望むように機能しません。基本的に、文字列の各要素を数値であるかのように個別に処理する必要があったため、最初にそれを int に変換したいのですが、それもできないようです。誰か助けてくれませんか?
私が得るエラーは次のとおりです。
In file included from /usr/include/c++/4.8/iostream:40:0,
from validate.cc:1:
/usr/include/c++/4.8/istream:872:5: note: template<class _CharT, class _Traits, class _Tp> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&)
operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
^
/usr/include/c++/4.8/istream:872:5: note: template argument deduction/substitution failed:
validate.cc:39:12: note: ‘std::ostream {aka std::basic_ostream<char>}’ is not derived from ‘std::basic_istream<_CharT, _Traits>’
cout >> i >> endl;