Me autorespondo por si a alguien le interesa un algoritmo de lectura de archivos CSV:
Código C++:
Ver originalvoid loadDataSet() {
double value;
char c;
while( !dataSetFile.eof() ) {
Register r;
r.cluster = -1;
do {
dataSetFile >> value;
dataSetFile >> c;
r.value.push_back( value );
} while( ( c == ',' ) && ( dataSetFile.good() ) );
dataSet.push_back( r );
}
}
La clave era 'dataSetFile.good()'. Sin esto, puesto que el último registro no tiene ningún carácter, en la última posición, no leía nada ni asignaba nada a la variable y, por tanto, tenía el antiguo valor y nunca ejecutaba el EOF()
También mencionar que resulta que si que coge el número con la precisión decimal correcta pero no lo mostraba por pantalla