学习自 StackOverflow
方法1:
ss.rdbuf() -> in_avail()
code:
#include <sstream>
#include <iostream>
using namespace std;
int main () {
stringstream ss;
ss << "12";
if (ss.rdbuf() -> in_avail() != 0) {
cout << "ss is not empty" << endl;
}
}
这里要注意的是,ss.rdbuf() -> in_avail()中还有多少字节,包括里面的空格(虽然ss>>的时候,是以空格或回车来分界的)
例子:
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s1("what am I doing");
cout << s1.size() << endl;
stringstream ss(s1);
cout << ss.rdbuf()->in_avail() << endl;
string s2;
ss >> s2;
cout << ss.rdbuf()->in_avail() << endl;
ss >> s2;
cout << ss.rdbuf()->