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 :
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 char buffer[taille]; in.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.
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);
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 ?
Partager