我正在尝试从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

我不确定如何从这里继续进行,因为除此以外我找不到任何问题,我们将不胜感激!

最佳答案

我发现了问题,我正在使用的文件本身出了点问题。我尝试使用相同的方法读取另一个文件,但没有任何问题。感谢所有对尝试提供帮助发表评论的人!

10-07 14:25