用fstream崩溃.exe读取txt文件

Reading out txt-files with fstream crashes .exe

本文关键字:txt 文件 读取 exe fstream 崩溃      更新时间:2023-10-16

我正在尝试读取一个包含以下数据的文本文件:

1 1 34.5 12.5 1 2 65.3 23.6 1 3 94.3 12.3

依此类推,两个整数后面跟着两个坐标,冲洗并重复。我使用以下代码(我真的不太了解编程):

#include <vector>
#include <sstream>
using namespace std;
int main()
{
vector<double> frame(1);
vector<double> point(1);
vector<double> PosX(1);
vector<double> PosY(1);
int i=0;
fstream file;
string line;
file.open ("sample1.txt", fstream::in | fstream::app);
while(getline(file, line))
{
    istringstream ss(line);
    ss >> frame[i] >> point[i] >> PosX[i] >> PosY[i];
    cout << frame[i] << " " << point[i] << " " << PosX[i] << " " << PosY[i]<< endl;
    i++;
}
return 0;
}

该程序构建得很好,运行了大约前五十组数字,但随后崩溃。

您的向量每个只有一个元素,但您正试图为方式设置更多的值。毫不奇怪,它崩溃了—你在写你没有分配的记忆!

使用push_backresize,或者使矢量的大小正确。