在将格式错误的整数(如“234EWEGRE567”)读入int
变量后,是否可以使std::stringstream
设置failbit?
示例:
#include <iostream>
#include <sstream>
int main() {
std::stringstream ss;
ss.str("234ewegre567");
int var;
ss >> var;
if (!ss) {
std::cout << "fail";
} else {
std::cout << var;
}
return 0;
}
预期产出:
fail
实际输出:
234
不,因为234是一个格式正确的整数。不要求整数以空格或文件结尾终止。