获取线函数不会解析 CSV 文件中的行尾

Getline function is not parsing end of line in CSV file

本文关键字:文件 CSV 函数 获取      更新时间:2023-10-16

我只是想读取一个 CSV 文件并将其打印在终端上,但我认为getLine()函数没有解析行尾字符。我认为这是因为我正在阅读的文件是在Windows上创建的,并且我在Linux上运行该脚本。为了验证这一理论,我在Linux上创建了一个新的CSV文件,但它遇到了同样的问题。

CSV 文件:

julio,tito,monroy
felipe,aguilar,jowell
readCsv.open("test.csv", ios::in);
if(readCsv.is_open()){
string time;
string in;
string out;
int count = 1;
while(!readCsv.eof()){
getline(readCsv, time, ',');
getline(readCsv, in, ',');
getline(readCsv, out, ',');
printf("%d : %s %s %s", count, time.c_str(), in.c_str(), out.c_str());
count++;
}
} else {
printf("There was an error when trying to open the csv file. n");
}

我做错了什么?

像这样

while (getline(readCsv, time, ',') &&
getline(readCsv, in, ',') &&
getline(readCsv, out))
{

您的版本有两点问题。首先,您的第三列以行尾结尾,而不是逗号,因此getline(readCsv, out, ',')是错误的。其次,您对eof工作原理的理解不正确,请参阅此处