Ignorer les espaces avec getline
Je suis en train de faire un programme pour faire de la question des formes. Les questions sont enregistrés dans un fichier, et j'ai envie de les lire et de les stocker dans la mémoire (j'utilise un vecteur pour cela).
Mes questions sont de la forme:
1 TEXT What is your name?
2 CHOICE Are you ready for these questions?
Yes
No
Mon problème est que quand je suis en train de lire ces questions à partir de ce fichier, j'ai lu une ligne, à l'aide de getline, puis-je le transformer en un stringstream, lire le nombre et le type de question, et ensuite utiliser getline de nouveau, sur les stringstream cette fois, pour lire le reste de la question.
Mais ce n'est, il lit aussi un espace qui est en face de la question et quand j'ai sauver les questions à nouveau le fichier et exécutez à nouveau le programme, il y a 2 espaces devant les questions et après cela il y a 3 espaces et ainsi de suite...
Voici un morceau de mon code:
getline(file, line);
std::stringstream ss(line);
int nmbr;
std::string type;
ss >> nmbr >> type;
if (type == "TEXT") {
std::string question;
getline(ss, question);
Question q(type, question);
memory.add(q);
Aucune idée sur comment résoudre ce problème? Peut getline ignorer les espaces?
Question
(qui a apparemment une classe imbriquée appelé Question
.. intéressant).Oups, erreur que j'ai faite.. Fixation maintenant!
OriginalL'auteur JNevens | 2013-11-18
Vous devez vous connecter pour publier un commentaire.
Regarder cette et d'utilisation:
OriginalL'auteur Axel
Pas getline ne l'ignore pas d'espaces. Mais il n'y a rien pour vous empêcher de vous ajouter un peu de code pour sauter les espacements avant d'utiliser getline. Par exemple
Soemthing comme ça de toute façon.
OriginalL'auteur john