problème sur istringstream::getline()
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:
1 2
| char buffer[taille];
in.getline(buffer, taille); |
ensuite je crée un istreambuffer pour "découper" ma ligne suivant les ';'
Code:
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 ?