今儿使用stringsteam可是遇到了一个大坑了
先把坑贴上来
int main()
{
stringstream ss;
int tmp = 0;
ss << "1";
ss >> tmp;
cout << tmp << endl;
ss << "2";
ss >> tmp;
cout << tmp << endl;
};
大家觉得这两次的输出是什么,1和2? 哈哈哈 我就是这么错的,它会输出1和1
为啥捏,这解释的东西就比较多了,首先单纯的解释这个问题,我看网上并没有解释相关问题
首先,我们都知道ss.clear()是用来清楚ss的状态,问题就在于,当ss将缓存中的所有东西输出之后,就会设置一个结束的状态,从而导致ss无法正常使用了,看代码
int main()
{
stringstream ss;
int tmp = 0;
ss << "1";
ss >> tmp;
cout << "第一次输出tmp " << tmp << endl;
cout << "ss 为空吗? " << ss.eof() <<