在内存位置的Std::out_of_range
std::out_of_range at memory location
这个块在内存位置0x0013f59c给了我错误消息std::out_of_range。问题来自中间的3条线(我在那里放了星号)。在代码完美运行之前。我还亲自检查了每行是否包含正确的前6个字符。
if (openfile.is_open() && newfile.is_open())
{
while (! openfile.eof())
{
getline(openfile, originaldata);
string day(originaldata,6,2); *
string month(originaldata,4,2); *
string year(originaldata,0,4); *
string data=day+"/"+month+"/"+year;
}
}
试试这个
if (openfile.is_open() && newfile.is_open())
{
while (getline(openfile, originaldata))
{
string day(originaldata,6,2);
string month(originaldata,4,2);
string year(originaldata,0,4);
string data=day+"/"+month+"/"+year;
}
}
使用eof几乎总是错误的,因为eof告诉你为什么最后一次读取失败,它并没有告诉你下一次读取将失败。因此,如果你要使用它,请在getline之后使用它,而不是在。
您的输入文件可能包含一个空行,getline
将读取它,生成一个空字符串。
或者格式不正的行太短。
考虑使用这个
while ( getline(openfile, originaldata) && originaldata.length() > 8 )
使用getline
作为while
中的条件,如果任何失败位设置在openfile
中,将使您的代码优雅地失败。不只是EOF
相关文章:
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- 解决方案在第 25 行执行错误'out of bounds'
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 从 MSVC14 切换到 MSVC16 会导致"compiler is out of heap space (C1060)"错误
- 庞大的初始化列表,如何修复"fatal error C1060: compiler is out of heap space"
- 如何解决'vector subscript out of range'错误?
- 在析构函数中调用"delete"运算符时"compiler is out of heap space"编译器错误
- 空集"Out of bound iterator"
- 在 std::unordered_map 中插入新的键/值对会导致"out of range"异常
- 注册 Clang 检查器时出错:"out-of-line-definition of register"
- QList::operator[]中的断言失败<T>:QJoysticks 中的"index out of range"
- 尝试获取矩阵的正确对角线会导致"vector out of range"错误
- 运算符方法和返回对象"out-of-scope"?
- 如何使用 mpi 分散修复"vector subscript out of range"?
- 如何修复邻接列表中的"Debug Assertion Failed" "vector subscript out of range"
- "Vector subscript out of range",在返回声明?
- QList<T>::operator[]: "index out of range" 中的断言失败
- 多次调用存储过程时C++连接器"Commands out of sync" mySQL
- 如何处理C++'index out of bounds error'?
- MySQL 异常"connection lost during query"、"MySQL server has gone away"和"command out of sync"