stringstream和char在一起时需要注意

来源:互联网 发布:mac bootcamp磁盘权限 编辑:程序博客网 时间:2024/06/05 20:46

       最近碰到了一个stringstream和char联合使用的奇怪bug,  本文不具体说这个bug.


       来看看程序:

#include <iostream>#include <string>#include <sstream>using namespace std;void test(const string &s1, const string &s2){cout << s1 << endl;cout << s2 << endl;if(s1 == s2){cout << "yes" << endl;}else{cout << "no" << endl;}}int main(){int c1 = '6';stringstream ss1;ss1 << c1;char c2 = '6';stringstream ss2;ss2 << c2;test(ss1.str(), ss2.str());return 0;}
     结果:

54
6
no


     呵呵, 要小心啊。 再看:

#include <iostream>#include <string>#include <sstream>using namespace std;void test(int x, int y){cout << x << endl;cout << y << endl;if(x == y){cout << "yes" << endl;}else{cout << "no" << endl;}}int main(){stringstream ss;ss << 2;int c1;ss >> c1;char c2;ss >> c1;test(c1, c2);return 0;}
      结果:

2
0
no


      小心。



阅读全文
1 0