错误处理铸造与弦乐的铸造双重
Error handling casting to double with stringstream
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::istringstream iss;
iss.str("1.23@45");
double result;
iss >> result;
std::cout << result << std::endl;
if (!iss.eof() || iss.fail()) {
std::cout << "error occurred" << std::endl;
}
}
输出是
1.23
error occurred
是否有更好的解决方案可以检查所有字符是否已经处理过?
update
另外,我想知道是否有任何方法可以检测错误。
if (!iss.eof() || iss.fail())
由于字符串流尚未到达流的末尾。eof()
显然是错误的,此if()
条件将评估为true。
结果是正确的:并非所有字符都已处理过。
相关文章:
- 使用返回对象的函数处理错误
- C++:处理错误,看不懂我的错误
- 如何处理错误"E1696命令行错误:无法在Visual Studio 2017中打开元数据文件"mscorlib.dll"?
- C++ 异常处理错误输出
- 信号处理错误
- 文件处理I/O C 错误
- 文件处理 - 错误:与 while 循环 (C++) 中的"运算符>>"不匹配(代码::块)
- SDL的事件处理错误
- HMODULE在重建导入地址表IAT时处理错误
- C++ 中的文件处理错误 - 调用"std::basic_fstream<char, std::char_traits<char> >::open(const char[8],
- 在处理线程时,处理错误的正确方法是什么
- 处理C++错误
- 异常处理C++错误
- CUDA图像处理错误
- 文件处理错误
- 代码::阻止资源预处理错误
- 使用模板创建类的新实例,不知道如何处理错误
- Qt 与 opencv 异常处理错误
- 提升 MSM 中的错误处理错误
- 如何处理错误“vtkTrivialProducer :此数据对象不包含请求的范围”