Le probl�me vient du fait que tu lui demande de lire des "lignes", ces lignes �tant d�finies comme "un truc suivi d'un caract�re espace". Espace uniquement, pas le caract�re de fin de ligne du tout.
Du coup, ton getline va retourner les premi�res fois :
1 : 74.60038368625241
2 : 96.81124655492178
3 : 112.45476845156641\n96.81124655492178
Ensuite, le reste de ton code va interpr�ter ces cha�nes, et le 96.81124655492178 sera donc oubli�.
Mais � la base ton code est bien trop complexe pour ce qu'il devrait faire. Pour lire des nombres s�par�s par des caract�res d'espaces, quels qu'ils soient (espace, tab, saut de ligne), et mettre le r�sultat dans un tableau de taile variable dont la taille s'adapte au nombre de donn�es, il suffit de faire :
1 2 3 4 5 6 7
| vector<double> xoff;
ifstream fichier("test2.txt");
double x;
while (ifs >>x)
{
xoff.push_back(x);
} |
Si la s�paration en lignes des donn�es d'entr�e a de l'importance, alors il faudra effectivement utiliser getline pour lire ligne � ligne, puis un istringstream pour d�couper chaque ligne en plusieurs doubles.
Par ailleurs, ton code m�lange des facilit�s C avec d'autres C++, ce qui en rend le lecture peu coh�rente. Je te conseille de finir de remplacer les FILE* et printf par les flux du C++, faisant de output_file2 un ofstream.
En outre, pour ce qui est de la gestion de la m�moire, vector est plus simple � g�rer que l'allocation dynamique � base de new[]/delete[].
Partager