I cannot say anything about the speed issue, however while(!fp.eof() ...
is an anti-pattern in C++! Don’t do it this way!
Instead check the result of getline:
ifstream fp(csvFileName.c_str(), ios::in|ios::binary);
// use the constructor instead of a separate "open"
// also, why "binary" when you are reading "lines" from a text file?
// And no need for .c_str()!
// so I assume you should simplify to:
// ifstream fp(csvFileName);
(...)
// Your while loop should look like this:
while (getline(fp, line)) {
if (0 == entries % 1000000)
cout<< "******** "<< entries<< " Currenttime: "<< TDatime().AsSQLString()<< " ********"<< endl;
entries++;
}
Could you check speed differences with this while loop?