输入文件读取错误
Input file reading error
嗨,我目前写了一个程序,但我有读取文件的问题。它似乎读了最后一行两次,结果产生了两次相同的结果。
我使用了getline()函数来读取第一行,以便存储变量G的字符串。其余部分,我将其存储在类对象的vector中。
基本上文件被打开并执行这个循环
file.open("bodies1.txt");
getline(file, G1);
....
while(!file.eof)
{
file >> body;
bodies.push_back(body);
}
是文本文件的样子(这只是一个示例。不是实际的东西)
0.02932
Sun 32 42 53 2 2
Moon 49 32 4 2 1
Jupiter 32 53 2 3 2
我真的很想知道为什么它读了最后一行两次。有什么建议吗?
while(!file.eof())
{
file >> body;
bodies.push_back(body);
}
将最后一个对象读入body
后,eof
是下一个字符。
file >> body;
尝试读取,失败。所以之前在body
中的东西仍然在那里,并将被推入向量。
你应该读成
while(file >> body)
{
bodies.push_back(body);
}
这样,当您遇到eof()
时,while就会停止,并且您将不会对向量进行额外的push。
相关文章:
- 分段错误 - 读取初始化指针的数组
- 在指向函数中读取变量时出现分割错误
- 读取某些文件时出现分段错误,似乎与文件大小无关
- 从对象C++中的文件读取内容时出现分段错误
- 我编写了以下代码来读取C++矩阵,然后打印其行和列.我收到此错误
- 可能的 ComputeCPP SYCL 错误读取嵌套缓冲区
- Eigen SparseLU解决错误读取访问冲突,这>m_sup_to_col被0x111011101110112
- 访问违规读取位置和错误读取字符串的错误
- libpng 错误:读取错误
- 错误读取字符到矩阵
- 分段错误读取 JSON 文件
- 斯特托克获取分段错误读取文件
- ifstream 初始化错误 - 读取字符时出错
- 读取错误-读取时无限
- 异常错误:读取位置0xDDDDDDDD时发生访问冲突
- 如何修复此错误读取位置0x00000008时发生访问冲突
- GDB:<错误读取变量>,带有 C++ 向量
- 找不到错误 读取大小 4 瓦尔格林德无效
- 分割错误读取文件
- libpng错误:读取错误(Visual Studio 2010)