0

我正在尝试编写一个简单的函数来读取 csv 并将每一行存储到一个向量中。代码如下:

   vector<string> readCSVfile( string path )
   {    
      ifstream ohlcStream( path );      

      istream_iterator<string> start(ohlcStream), end;
      vector<string> ohlcData(start, end);  
      ohlcStream.close();
      return ohlcData;
   }

但是由于某种原因,文件的行似乎由空格和换行符分隔。例如,原始数据文件的第一行如下所示:

  Date,Open,High,Low,Close,Adj Close,Volume,factor,date_downloaded

但是在main中调用函数之后:

    vector<string> mydata = readcsv( path );

并输出向量 mydata 的元素,我得到:

    element 0: Date,Open,High,Low,Close,Adj 
    element 1: Close,Volume,factor,date_downloaded

即使我期待:

     Date,Open,High,Low,Close,Adj Close,Volume,factor,date_downloaded

我试过用

    ohlcStream >> noskipws;
    istream_iterator<string> start(ohlcStream), end;

但这没有用。结果是一个空的向量。

我知道我可以使用 getline 和循环,但我想了解为什么我当前的代码不起作用。

任何帮助,将不胜感激。谢谢

4

0 回答 0