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