【发布时间】:2018-04-29 10:06:53
【问题描述】:
获取 CSV 文件中的行数的最佳方法是什么?我有一个大的 CSV 文件(1 GB),并且使用 getline 遍历整个文件需要很长时间。 这是我尝试过的:
string s;
int RowCount=0;
ifstream in("sample.csv");
while(!in.eof()) {
getline(in, s);
RowCount ++;
}
cout << "Rows: "<<RowCount;
in.close();
有没有办法在不打开文本文件的情况下确定它的行数?
【问题讨论】:
-
有没有办法在不打开文本文件的情况下确定它的行数? 几乎没有;除非你有一些信息。例如:固定的行长度或某种标题/元数据。
-
不,不打开文件就无法以任何方式检查文件的内容。
-
尝试
in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');而不是std::getline -
我可以在这里感受到XY problem 的潜力。为什么首先需要行数?你不会分配一些固定大小的数组或任何东西,对吧?
标签: c++ csv file-handling