我正在尝试从c ++中的.csv文件读取。调用myfile.open(file)之后,is_open返回true,但是getline仅返回空字符串。
我尝试使用向量读取行,然后将向量数据写入要读取的变量,但这也只返回了空字符串。
std::ifstream csvFile;
std::string line = "!", temp= "...";
csvFile.open("file.csv");
if(csvFile.is_open()) {
std::cout << "open\n";
std::cout << line << "\n";
if(getline(csvFile, line)) {
std:: cout << line << "\n";
} else {
std::cout << temp << "\n";
}
}
else {
std:: cout << "not opening\n";
}
std:: cout << line;
运行后,我的输出如下。
[ctest] open
[ctest] !
[ctest] ...
[ctest]
如图所示,尽管文件本身不为空,但getline()仅返回一个空字符串。
这是csv文件的前20行左右,我已经确定该文件位于当前工作目录中。
Alpha002
16:55:54 13/6/2019
428,1.61,-1.31,-0.13,0,0
448,1.61,-1.47,-0.13,0,0
468,1.68,-1.07,-0.44,0,0
488,1.61,-1.39,-0.76,0,0
508,1.61,-1.47,-0.68,0,0
3528,1.61,-1.55,-0.36,0,0
3548,1.61,-1.31,-0.28,0,0
3568,1.68,-1.15,-0.36,0,0
3588,1.68,-1.63,-0.76,0,0
3608,1.68,-0.76,-0.68,0,0
3628,1.68,-1.15,-0.21,0,0
3648,1.68,-0.76,-0.28,0,0
3668,1.68,-1.39,-0.13,0,0
3688,1.68,-1.07,-0.21,0,0
3708,1.61,-1.47,0.03,0,0
我不确定从这里开始如何做,因为除此以外我找不到任何问题,因此请多多指教!
答案 0 :(得分:1)
我发现了问题,我正在使用的文件本身出了点问题。我尝试使用相同的方法从另一个文件读取数据,但没有问题。感谢所有对尝试提供帮助发表评论的人!