[C++] Ausgabe in Felder

06/02/2014 16:38 iTrodan#1
Wie reserviere ich eine gewisse anzahl an felder ?
Wenn ich folgendes mache
Code:
cout << setw(6) << setfill('*') <<  "ABC" << endl;
wird
Code:
***ABC
ausgegeben ich möchte aber dass folgendes ausgegeben wird
Code:
***ABC***
Dazu habe ich auch was kleines selbst geschrieben undzwar
Code:
	cout << setw(9) << setfill('*') << "ABC";
	cout << setw(6) << setfill('*') << "*";
Meine Frage ist nun was für möglichkeiten gibt es noch " ***ABC*** " ausgeben zu lassen außer
Code:
cout << "***ABC***" << endl;
Danke schon mal im vorraus.
06/02/2014 20:21 KingwondA#2
Quote:
Originally Posted by iTrodan View Post
Wie reserviere ich eine gewisse anzahl an felder ?
Wenn ich folgendes mache
Code:
cout << setw(6) << setfill('*') <<  "ABC" << endl;
wird
Code:
***ABC
ausgegeben ich möchte aber dass folgendes ausgegeben wird
Code:
***ABC***
Dazu habe ich auch was kleines selbst geschrieben undzwar
Code:
	cout << setw(9) << setfill('*') << "ABC";
	cout << setw(6) << setfill('*') << "*";
Meine Frage ist nun was für möglichkeiten gibt es noch " ***ABC*** " ausgeben zu lassen außer
Code:
cout << "***ABC***" << endl;
Danke schon mal im vorraus.
Entweder mit printf oder mit sprintf_s
06/02/2014 20:23 Czer0™#3
[Only registered and activated users can see links. Click Here To Register...]
06/02/2014 21:17 snow#4
Quote:
[C++]
Quote:
Entweder mit printf oder mit sprintf_s
Quote:
C-Programmierung
ôo

Dieser Code:

Code:
#include <iostream>
#include <string>

std::string foo(const std::string &text, char fill_char = '*', std::size_t rep = 3)
{
	return std::string(rep, fill_char) + text + std::string(rep, fill_char);	
}

int main() {
	std::cout << foo("ABC") << std::endl;
	std::cout << foo("ABC", '+', 5) << std::endl;
	return 0;
}
gibt bei mir
Quote:
***ABC***
+++++ABC+++++
aus.
06/02/2014 23:03 Tasiro#5
Quote:
Originally Posted by snow911 View Post
Code:
[...]
Wenn man das noch etwas "verbessert" und sich alle Mühe gibt, das Ergebnis "wiederverwendbar" und die Zeilen lang zu halten, kann man sich sogar seinen eigenen Manipulator erstellen:
Ideones std::basic_string-Konstruktor hat einen Fehler, es wird immer nur ein Zeichen produziert.
Die C++14-Variablentemplates wären hilfreich gewesen.