C++ 克服下载CSV文件进行解析时出现的问题。Linux与Windows新品Charachter
我试图用历史股价分析股票数据。此数据可以作为CSV文件从Yahoo Finance()下载。但是,当我下载文件时,它被组织为一行,而不是在每行的末尾用新行分隔。我读到这是因为不同的操作系统使用不同的字符来表示新行。在下载文件或在文本编辑器中下载时,是否有方法克服此问题,或者是否应修改代码以适应下载文件的格式。我在Windows 10上用C++编写代码,并在记事本中查看文件。(我对StackOverFlow也不熟悉,因此我们非常感谢您的提问建议。) 例如: 代码应该是怎样的 2017-10-16157.899994160.000000157.649994159.880005159.3073122412500 2017-10-17159.779999160.869995159.229996160.470001159.8952031897300 2017-10-18160.419998160.710007159.600006159.759995159.18772916374200 2017-10-19156.750000157.080002155.0200004155.979996155.42128042584200 2017-10-20156.61000157.750000155.960007156.250000155.69030823974100 如何下载 2017-10-16157.899994160.000000157.649994159.880005159.3073112412502017-10-17159.779999160.869995159.229996160.470001159.8952031838973002017-10-18160.419998160.710007159.600006159.759995159.187729163742002017-10-19156.75000000157.080002155.0200004155.9799155.42128042584020017-10-20156.61000157.75000155.9600071250000155.69030823974100 我要在文件中读取的代码C++ 克服下载CSV文件进行解析时出现的问题。Linux与Windows新品Charachter,c++,linux,windows,csv,delimiter,C++,Linux,Windows,Csv,Delimiter,我试图用历史股价分析股票数据。此数据可以作为CSV文件从Yahoo Finance()下载。但是,当我下载文件时,它被组织为一行,而不是在每行的末尾用新行分隔。我读到这是因为不同的操作系统使用不同的字符来表示新行。在下载文件或在文本编辑器中下载时,是否有方法克服此问题,或者是否应修改代码以适应下载文件的格式。我在Windows 10上用C++编写代码,并在记事本中查看文件。(我对StackOverFlow也不熟悉,因此我们非常感谢您的提问建议。) 例如: 代码应该是怎样的 2017-10-161
void Stock::readData(filename){
ifstream stream;
stream.open(fileName);
if(stream.fail()){
cout << "The file " << fileName <<" failed to open." << endl;
return;
}
string line ="";
cout << line << endl;
while(!stream.eof()){
// cout << '*' << endl;
getline(stream,line);
//cout << line << endl;
string parsed[7];
int num = Spliter(line, ',', parsed, 7);
string tempDate;
float tempOpen;
float tempHigh;
float tempLow;
float tempClose;
float tempCloseAdj;
float tempVolume;
/*for(int i=0; i<num; i++){
cout << parsed[i] << endl;
}*/
tempDate = parsed[0];
tempOpen = stof(parsed[1]);
tempHigh = stof(parsed[2]);
tempLow = stof(parsed[3]);
tempClose = stof(parsed[4]);
tempCloseAdj = stof(parsed[5]);
tempVolume = stof(parsed[6]);
/*
cout <<(tempDate) << " ";
cout << (tempOpen)<< " ";
cout << (tempHigh)<< " ";
cout << (tempLow)<< " ";
cout << (tempClose)<< " ";
cout << tempCloseAdj<< " ";
cout << (tempVolume) << endl;
*/
vector<float> v;
dates.push_back(tempDate);
data.push_back(v);
data[numberOfDays].push_back(tempOpen);
data[numberOfDays].push_back(tempHigh);
data[numberOfDays].push_back(tempLow);
data[numberOfDays].push_back(tempClose);
data[numberOfDays].push_back(tempCloseAdj);
data[numberOfDays].push_back(tempVolume);
// cout << '#' << endl;
numberOfDays++;
}
stream.close();
void Stock::readData(文件名){
ifstream;
打开(文件名);
if(stream.fail()){
无法我解决了问题。为了在Mac、Windox或Unix等平台之间转换EOL行结尾,请下载一个文本编辑器,如Notepad++。在Notepad++中打开该文件并转到编辑选项卡。找到EOL转换按钮并使用它转换该文件。您的代码片段在哪里?请提供一个用于编辑的代码ns独立于任何标题?拆分器从何而来?如果代码确实包含#include
s、主函数等,那就更好了。一个具有相同问题的尽可能少的行数的工作示例会使您的问题更具吸引力和可读性。