Probleme mit Iomanip
-
Hallo.
Hier direkt mal mein Code:void SizeOf() { cout.setf(ios::fixed,ios::adjustfield); cout << " Belegter Speicher in Bit: \n" << "\Bool: \n" <<setw(15)<<sizeof(bool) << "\nChar: \n " <<setw(15)<<sizeof(char) << "\nInt: \n " <<setw(15)<<sizeof(int) << "\nDouble: \n " <<setw(15)<<sizeof(double) << "\nlong: \n " <<setw(15)<<sizeof(long) << "\nlong Double: \n" <<setw(15)<<sizeof(long double) << endl;Trotz setw(15) wird jede zeile ein Stückchen verschoben ausgegeben. <<right führt bei mir zu keinem Ergebniss.
Wie bekomme ich die SizeOf's genau in eine Spalte?Danke!
-
Du hast hinter manchen \n noch ein Leerzeichen in der Ausgabe, hinter anderen nicht.
-
Ist ja auch klar da deine Ausgaben unterschiedlich lange sind.
Da musste ein bisschen rumrechnen oder dir ne Funktion basteln. Aber kann sein dass es auch noch andere Möglichkeiten gibt.Lg freeG
-
Das ist Unfug.
Beispiel aus Deinem Code:
<< "\Bool: \n" <<setw(15)<<sizeof(bool) << "\nChar: \n " <<setw(15)<<sizeof(char)Hier wird nach 'Bool:' eine neue Zeile begonnen und 15 stellig sizeof(bool) ausgegeben, dann wird 'Char: ' ausgegeben, eine neue Zeile begonnen, als erstes ein Leerzeichen in die neue Zeile geschrieben, dann 15 stellig sizeof(char) ausgegeben, deshalb hat diese Zeile 16 Stellen und nicht 15, wie die erste, usw.
-
Danke sehr!
Aber wie bekomme ich denn mit setw (oder anderen flags) hin, dass die Bitzahlen in einer Reihe mit der oberen Zeile stehen?
also:
Int: 2
da kann ich machen was ich will, da hüpft jede Bitzahl wo anders rum...
-
Ich verstehe Deine Frage nicht.
Mit:void SizeOf() { cout << " Belegter Speicher in Bit: \n" << "\Bool: \n" <<setw(15)<<sizeof(bool) << "\nChar: \n" <<setw(15)<<sizeof(char) << "\nInt: \n" <<setw(15)<<sizeof(int) << "\nDouble: \n" <<setw(15)<<sizeof(double) << "\nlong: \n" <<setw(15)<<sizeof(long) << "\nlong Double: \n" <<setw(15)<<sizeof(long double) << endl;sollten alle Zahlen untereinander stehen. Es muss übrigens 'Byte' und nicht 'Bit' heißen.
-
Meinst du so?
void SizeOf() { cout << setw(10) << "Belegter Speicher in Bytes: << '\n' << setw(10) << "bool = " << sizeof(bool) << '\n' << setw(10) << "char = " << sizeof(char) << '\n' << setw(10) << "int = " << sizeof(int) << '\n' << setw(10) << "float = " << sizeof(float) << '\n' << setw(10) << "double = " << sizeof(double); }
-
Belli schrieb:
Das ist Unfug.
Beispiel aus Deinem Code:
<< "\Bool: \n" <<setw(15)<<sizeof(bool) << "\nChar: \n " <<setw(15)<<sizeof(char)Hier wird nach 'Bool:' eine neue Zeile begonnen und 15 stellig sizeof(bool) ausgegeben, dann wird 'Char: ' ausgegeben, eine neue Zeile begonnen, als erstes ein Leerzeichen in die neue Zeile geschrieben, dann 15 stellig sizeof(char) ausgegeben, deshalb hat diese Zeile 16 Stellen und nicht 15, wie die erste, usw.
Tur mir Leid hat recht, hab das verwechselt weil ich auch schonmal so ein ähnliches Problem hatte, allerdings ging es dort darum alles z.B. rechtsbündig zu haben.
Lg freeG
-
fr33g schrieb:
Tur mir Leid hat recht, hab das verwechselt weil ich auch schonmal so ein ähnliches Problem hatte, allerdings ging es dort darum alles z.B. rechtsbündig zu haben.
Das geht aber auch mit zB
cout << setw(15) << right << "Text";
cout << '\n';
cout << setw(15) << right << "mehr Text";
-
Gugelmoser schrieb:
meinst du so?
void SizeOf() { cout << setw(10) << "Belegter Speicher in Byte:\n" << setw(10) << "bool = " << sizeof(bool) << "\n" << setw(10) << "char = " << sizeof(char) << "\n" << setw(10) << "int = " << sizeof(int) << "\n" << setw(10) << "float = " << sizeof(float) << "\n" << setw(10) << "double = " << sizeof(double) << "\n"; }lg
Nein, ich meinte es so, das die Namen der Variabeln linksbündig am Rand und die Bitgrößen rechtsbündig weiter hinten stehen!
Aber danke schonmal für eure Hilfe!
-
habs selber rausgefunden! :>
cout << setw(10) << "Belegter Speicher in Byte:\n" <<left << setw(15) << "bool = " << setw(15) << sizeof(bool) << "\n" <<left << setw(15) << "char = " << setw(15) << sizeof(char) << "\n" <<left << setw(15) << "int = " << setw(15) << sizeof(int) << "\n" <<left << setw(15) << "float = " << setw(15) << sizeof(float) << "\n" <<left << setw(15) << "double = "<< setw(15) << sizeof(double) << "\n"; getch();Abe rnur Dank euch

DANKE!