#include <iostream>
#include <sstream>
using namespace std;
int get_4()
{
char c = '4';
stringstream s(ios::in);
s << c;
int i;
s >> i;
return i;
}
int main()
{
cout << get_4() << endl;
}
转换对我不起作用。如果我将字符'4'或字符数组{'4','\ 0'}写入字符串流然后将其读出到int i,我就不会回复4.上面的代码出了什么问题?< / p>
答案 0 :(得分:10)
因为您将stringstream
设置为仅输入 - 无输出。
如果您在尝试之后检查fail()
位以提取int
,您会发现它不起作用:
s >> i;
bool b = s.fail();
if( b )
cerr << "WHOA DOGGIE! WE BLOWED UP\n";
在您的代码中,更改:
stringstream s(ios::in);
为:
stringstream s;