En utilisant stringstream
pour extraire des mots d'une phrase.Pourquoi std :: cout ajoute return ou newlines à ma sortie?
Une nouvelle ligne est ajoutée pour chaque mot, et je ne vois pas pourquoi; peut tu? Merci pour votre aide. Keith: ^)
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
int main() {
int wordCount(9);
std::vector<std::string> v(wordCount);
std::vector<std::string>::iterator it;
std::string tStr;
std::string myStr = "the quick fox jumped over the lazy brown dogs";
std::stringstream ss(myStr);
std::cout << "Sentence broken into vector:" << std::endl;
for (int i=0; i<wordCount; ++i) {
ss >> tStr;
v.push_back(tStr);
}
for (it=v.begin(); it != v.end(); ++it)
std::cout << *it << std::endl;
std::cout << std::endl;
return 0;
}
Compilation, exécution et sortie. Notez les nouvelles lignes supplémentaires.
pickledEgg $ g++ -std=c++11 -g -Og -o io2 io2.cpp
pickledEgg $ ./io2
Sentence broken into vector:
the
quick
fox
jumped
over
the
lazy
brown
dogs
Ce serait un excellent moment pour utiliser un débogueur. – chris
Vous n'utilisez pas 'std :: cin' n'importe où dans ce code ... – qxz
vous avez créé le vecteur avec 9 chaînes vides et ensuite vous avez poussé les autres chaînes sur la fin ... la sortie correspond exactement à –