为什么 istringstream 似乎无法完全读取带后缀的数字文字?
#include <iostream>
#include <sstream>
using namespace std;
int main() {
long long x = 123ULL; // shows 123ULL is a valid long long literal
istringstream iss("123ULL");
iss >> x;
cout << "x is " << x << endl;
char extra;
iss >> extra;
cout << "remaining characters: ";
while(!iss.eof())
{
cout << extra;
iss >> extra;
}
cout << endl;
return 0;
}
这段代码的输出是
x is 123
remaining characters: ULL
这种行为是由语言环境控制的吗?任何人都可以指点我清除有关接受哪些字符串的文档istringstream::operator>>(long long)
吗?