提问者:小点点

Std::StringStream没有使用格式错误的整数设置failbit


在将格式错误的整数(如“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

共1个答案

匿名用户

不,因为234是一个格式正确的整数。不要求整数以空格或文件结尾终止。