The issue is that the .txt file was generated in Windows. When reading from the file in Linux,
std::getline returns a string ended in
\r is parsed as part of the second column, and therefore the inferred type is string. You can convert your Windows file to unix format with e.g.
Also, I noticed that the first row contains a
0 in the second column. Provided that you convert the file to unix format, and since it is the first row that is used to infer the types, the second column will be inferred as an integer. You can change that just by changing that value to
0. to force the infererred type to be double.