gpt4 book ai didi

c++ - 处理输入流运算符中的无效输入>>

转载 作者:行者123 更新时间:2023-12-01 22:16:11 25 4
gpt4 key购买 nike

处理提取运算符中的无效输入的推荐(标准)方法是什么:

std::istream& operator>>(std::istream& is, SomeType& val) {
// ...
return is;
}

它应该设置std::ios_base::failbit并立即返回吗?是否可以将 val 对象保留为未定义状态,其中某些变量可能已经更改?

最佳答案

根据FormattedInputFunction记录推荐的布局:

std::istream& operator>>(std::istream& is, SomeType& val) {
std::istream::sentry s(is);
if (s) {
// do parse
if (parsing_failed) {
// optionally, to make it work like built-in operators:
// val = {};
is.setstate(std::ios_base::failbit);
}
}
return is;
}

关于c++ - 处理输入流运算符中的无效输入>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58500527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com