我正在尝试编写一个简单的函数来读取 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 和循环,但我想了解为什么我当前的代码不起作用。
任何帮助,将不胜感激。谢谢