Vectorelemente in eine Zeile ausgeben
-
Hi,
folgende Problemstellung:
Ein Text soll eingegeben werden. Alle Wörter sollen als Vectorenelemente gespeichert werden .Das Programm soll nun alle Buchstaben in Großbuchstaben "verwandeln" und anschließend soll der Text in 8 Wörtern pro Zeile ausgegeben werden.
Das mit den Großbuchstaben ist kein Problem, und die Wörter als Vektorenelemente speichern ist auch ok. Ich habe auch eine Variable gesetzt, die nach jedem mal Ausgeben erhöht wird, sodass sie nach 8mal einen Zeilenumbruch einfügt und wieder auf null gesetzt wird. Allerdings wird schon nach jedem Wort ein Zeilenumbruch durchgeführt und nach 8 Wörtern entsteht somit eine leere Zeile. Also meine Frage:
Wie kann ich mehrere Vectorelemente in eine Zeile ausgeben?Hier mein Quelltext:
#include <iostream> #include <vector> #include <string> #include <cctype> using namespace std; int main() { vector<string> svec; //deklariert einen leeren Vector string s; //deklariert einen leeren String int i = 0; //i ist der Zähler für den Zeilenumbruch while ( cin >> s ) //solange der String s eingelesen wird - { for (vector<string>::size_type ix = 0; ix != s.size(); ++ix) //for-schleife zur Indizierung; { s[ix] = toupper(s[ix]); //setzt jeden Buchtsabe auf einen Großbuchstabe; - } svec.push_back(s); //wird der String s in den Vector svec abgelegt. } for (vector<string>::size_type ix = 0; ix != svec.size(); ++ix) //for-schleife zur Indizierung { cout << svec[ix] << endl; //gibt ein Wort nach dem anderen aus svec aus ++i; //erhöht i um 1 if ( i == 8 ) //wenn i = 8 ist, { cout << endl; //soll ein Zeilenumbruch erfolgen i = 0; //und i wird wieder auf 0 gesetzt. } } }
-
Du lässt hier das std::endl weg und ersetzt es durch ein Leerzeichen
cout << svec[ix] << endl;http://www.cplusplus.com/reference/iostream/manipulators/endl/
-
Danke