Вы не можете определить количество строк в файле, не открывая его. Если каждая строка не имеет фиксированной длины, в этом случае вы можете просто разделить размер файла на длину строки. В противном случае вы фактически должны прочитать весь файл, считая строки.
Это должно быть как можно быстрее:
std::ifstream in("sample.csv");
std::size_t RowCount = 0;
char buff[4096]; // larger = faster (within limits)
while(in.read(buff, sizeof(buff)) || in.gcount())
RowCount += std::count(buff, buff + in.gcount(), '\n');
std::cout << "Rows: " << RowCount;
Считывает файл кусками в буфер и считает количество маркеров окончания строки '\n'
. Чем больше буфер, тем эффективнее он должен быть.