Le découpage d'une ligne d'un fichier csv dans un std::vector?

J'ai une fonction qui va lire un fichier CSV ligne par ligne. Pour chaque ligne, il se divise, la ligne dans un vecteur. Le code pour faire cela est

    std::stringstream ss(sText);
    std::string item;

    while(std::getline(ss, item, ','))
    {
        m_vecFields.push_back(item);
    }

Cela fonctionne très bien sauf quand il lit une ligne où la dernière valeur est vide. Par exemple,

text1,tex2,

Je veux que ce retour d'un vecteur de taille 3, où la troisième valeur est tout simplement vide. Cependant, au lieu de cela elle retourne un vecteur de taille 2. Comment puis-je corriger cela?

double possible de CSV analyseur en C++
non, il n'est pas. Ce code fait exactement la même chose si la ligne se termine par une virgule
N'est pas le problème le délimiteur? std::getline extraits jusqu'à ce que le séparateur est trouvé. Mais pour ce dernier point, il n'y a pas de délimiteur suivant , rien n'est donc extrait et ainsi la boucle while se termine.
tout simplement parce que actuellement accepté de répondre a des défauts, ne signifie pas que la question ne traite pas le même problème de l'espace de manière adéquate - il y a d'autres réponses à travailler et peut être upvoted, et vous pouvez faire un commentaire à propos de problèmes avec des réponses précises.

OriginalL'auteur Jonnster | 2012-07-03