Non riesco bene ad usare getline (o almeno penso vada usato quello).
Stavo ripassando l'utilizzo delle stringhe e ho provato a risolvere un esercizio di Stroustup (5.11)
mi chiede in pratica di acquisire un tot di stringhe (e di fermare la procedura con Quit), poi farne un print unsorted ed uno sorted. Con il codice qui riportato va tutto bene tranne che se inserisco gli spazi le considera giustamente stringhe separate incontrando \0. Come posso fare?
codice:#include <iostream> #include <vector> #include <string> #include <algorithm> int main(int argc, char* argv[]) { //variables int i=0; std::string Istring; std::vector<std::string> StringList; std::vector<std::string>::iterator iter, iterUnique; std::cout << "Insert some strings. Type 'Quit' to exit: \n\n"; //read strings do{ std::cout << "\t"; std::cin >> Istring; StringList.push_back(Istring); }while(StringList.back() != "Quit"); //Cancel Quit from vector StringList.pop_back(); //Print unsorted words std::cout << "\nUnsorted submitted words:\n"; for(iter = StringList.begin();iter != StringList.end();iter++) { std::cout << "\t" << *iter << std::endl; } //Print sorted words std::cout << "\nSorted submitted words:\n"; std::sort(StringList.begin(),StringList.end()); iterUnique = std::unique(StringList.begin(),StringList.end()); for(iter = StringList.begin();iter < iterUnique; iter++) { std::cout << "\t" << *iter << std::endl; } return 0; }