C ++:输入文件(未知大小的数据)到向量问题

时间:2015-04-23 21:28:48

标签: c++ vector filestream ifstream

我正在尝试将带有两列数据x和y的文件放入两个向量中,一个只包含x而另一个只包含y。没有列标题。 像这样:

x1 y1
x2 y2
x3 y3

但是,当我运行此代码时,遇到错误:(lldb) 有人能告诉我,如果我做错了吗?

#include <iostream>
#include <cmath> 
#include <vector>
#include <fstream> 

using namespace std;

int main() {

    vector <double> x; 
    vector <double> y; 

    ifstream fileIn;

    fileIn.open("data.txt"); //note this program should work for a file in the above specified format of two columns x and y, of any length.

    double number;

    int i=0;

    while (!fileIn.eof())
    {
        fileIn >> number;
        if (i%2 == 0) //while i = even
        {
            x.push_back(number); 
        }
        if (i%2 != 0) 
        {
            y.push_back(number); 
        }
        i++; 
    }
    cout << x.size();
    cout << y.size();

    fileIn.close();
    return 0;
}

2 个答案:

答案 0 :(得分:0)

我认为这与您的代码无关。 检查你的g ++论点

g++ -o angle *.cpp -Wall -lm

答案 1 :(得分:0)

如果无法打开文件data.txt,程序将进入无限循环,如果你将其杀死(使用Ctrl + C),则消息&#34; lldb&#34;是调试器的名称。你应该写一些类似的东西:

fileIn.open("data.txt"); //note this program ...
if(!fileIn) { // check if fileIn was opened
    cout << "error opening data.txt\n";
    return 1;
}

看。 另外,

  

while(!fileIn.eof())

不是读取文件的正确方法。看到: Reading a C file, read an extra line, why?