Text Formatierungsproblem
-
cout<<left<<"TEXT 1"<<cout.width(20)<<"TEXT 2"<<endl; for(int i=0;i<3;i++) { cout<< left<<a[i]<< cout.width(20); cout<<b[i]<<endl; }Ausgabe:
TEXT 1 0TEXT 2
yxz 0abc
qwertz 0defghi
qqqqqq 0jklmWas machen die Nullen da? Wie krieg ich die weg?
-
cout << left << "TEXT 1" << /*cout.*/ width(20) << "TEXT 2" << endl;
for(int i=0;i<3;i++)
{
cout << left << a[i] << /*cout.*/width(20);
cout<<b[i]<<endl;
}
-
Das hatte ich auch schon versucht aber dann kommt:
Aufruf der undefinierten Funktion 'width'
Ich habe gerade herausgefunden das ich das auch so machen kann:
cout<<left << "TEXT 1" << cout.width(20) << "\b" << "TEXT 2" << endl;Bis du ganz sicher das man width so aufrufen kann --> cout<<width(20);
http://www.cplusplus.com/reference/iostream/ios_base/width/
Weil dort steht das immer in dieser Syntax: cout.width(20);
-
form schrieb:
Weil dort steht das immer in dieser Syntax: cout.width(20);
Da steht übrigens auch, dass der zugehörige Manipulator
setwwäre. Da ist Belli (aus verständlichen Gründen) wohl durcheinander gekommen, welcher Bezeichner wie zu nutzen ist.
-
Da steht dann aber nur: cout.width(x) und nicht ... << cout.width(x)
Binde mal iomanip ein:
#include <iomanip>
und verwende statt ... << width(20) << ...
... << setw(20) << ...
-
SeppJ schrieb:
Da ist Belli (aus verständlichen Gründen) ...
Danke!
-
Ich hab nochmal eine Frage zur Formatierung.
string a[]={"abc","def","ghi"}; string b[]={"123","456","789"}; string c[]={"AAA","BBB","CCC"}; for(int i=0;i<3;i++) { cout<< left << setw(20) <<a[i] << b[i]; cout<< setw(30) <<c[i] << endl; }Gibt jetzt aus:
TEXT 1 TEXT 2
abc 123AAA
def 456BBB
ghi 789CCCWenn ich da jedoch jetzt cout.width(30) verwende dann macht das Programm zwar die Zeilenabstände aber dann habe ich wieder eine 0 in der Zeile stehen.
Setzt ich das setw hier falsch ein oder muss ich da eine andere Funktion benutzen wenn ich 3 Spalten erstellen will?
-
form schrieb:
Wenn ich da jedoch jetzt cout.width(30) verwende dann macht das Programm zwar die Zeilenabstände aber dann habe ich wieder eine 0 in der Zeile stehen.
So macht man das schließlich auch nicht. Der Rückgabewert von cout.width() ist der Wert vor dem Aufruf. Und den gibst du dann aus.