bonjour,

j'ai un problème très bizarre avec la fonction getline qui lit bizarrement en fin de ligne.

Je lis un fichier csv, donc mes champs sont séparés par des ';'
je commence par lire en entier la ligne dans mon fichier avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
char buffer[taille];
in.getline(buffer, taille);
ensuite je crée un istreambuffer pour "découper" ma ligne suivant les ';'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
istringstream ist(buffer);
ist.getline(buffer, taille, ';');
...
ist.getline(buffer, taille, ';');
...
// dernier champ du csv
ist.getline(buffer, taille);
Et là, le problème arrive, dans le dernier champ, il y a un caractère de trop qui est le caractere 0xd, c'est à dire le retour chariot.
Normalement getline devait s'arrêter à une fin de ligne '\n'.

Ce qui est bizarre c'est que sous Windows je n'ai pas ce caractère en trop alors que sous linux ça deconne...

Est-ce que quelqu'un voit d'où ça vient ?