<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Print]]></title><description><![CDATA[<p>Hallo, ich habe ein paar kleine Formatierungsprobleme auf meinem outstream.<br />
momentan verwende ich noch COUT um die Formatierung zu regeln, später im Programm werde ich stattdessen fstream verwenden um auf eine txt-Datei zu schreiben.</p>
<p>Habe momentan das Problem, dass ich gerne folgende Ausgabe hätte:</p>
<pre><code class="language-cpp">// auf dem Outstream
PictureLink                                              MyLink
CardName                                              BlaBlaBla
Edition                                                     MMM
Rareness                                                   Rare
Colour                                                    Black
ManaCosts                                                  1+3B
CardType                                              Neverever
Price                                                     12.95
</code></pre>
<p>Wie kann ich denn die Variablen rechtsbündig anordnen?? egal was da von meinem selbstgeschriebenem Scanner an Stringlängen so ankommt? Also ich möchte quasi die strings und doubles die ich habe schön untereinander rechtsbündig am Outstream enden lassen...</p>
<p>Problem 2:</p>
<p>Ich habe einen Vector aus strings und möchte den darin gespeicherten text so ausgeben das sinnvolle Zeilenumbrüche ab einer gewissen Länge gemacht werden</p>
<pre><code class="language-cpp">//Outstream
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text
</code></pre>
<pre><code class="language-cpp">//Meine aktuelle Print-Methode
void CardReader::Print(std::ostream &amp; ost) const {		// Zugriff auf PrivateMember funktioniert nicht (Iterator-Fehler)

	size_t CardCounter = 1;

	ost &lt;&lt; &quot;--------------------[Print: Vector]--------------------&quot; &lt;&lt; endl;

	for (std::vector&lt;CardInformation&gt;::const_iterator Iter = Vect.begin(); Iter != Vect.end(); Iter++) {
		ost &lt;&lt; &quot;--------------[Karte aus VektorPosition &quot; &lt;&lt; CardCounter &lt;&lt; &quot;]--------------&quot; &lt;&lt; endl;

		ost &lt;&lt; setfill(' ') &lt;&lt; cPictureLink &lt;&lt; setw(55) &lt;&lt; Iter-&gt;PictureLink &lt;&lt; endl;
		ost &lt;&lt; cCardName    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;CardName    &lt;&lt; endl;
		ost &lt;&lt; cEdition     &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Edition     &lt;&lt; endl;
		ost &lt;&lt; cRareness    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Rareness    &lt;&lt; endl;
		ost &lt;&lt; cColour      &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Colour      &lt;&lt; endl;
		ost &lt;&lt; cManaCosts   &lt;&lt; setw(55) &lt;&lt; Iter-&gt;ManaCosts   &lt;&lt; endl;
		ost &lt;&lt; cCardType    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;CardType    &lt;&lt; endl;
		ost &lt;&lt; cPrice       &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Price       &lt;&lt; endl;
		ost &lt;&lt; cTournaments &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Tournaments &lt;&lt; endl;

		size_t TextPositonCounter = 0;
		ost &lt;&lt; cCardText    &lt;&lt; endl;
		for(std::vector&lt;std::string&gt;::const_iterator IT = Iter-&gt;CardText.begin(); IT != Iter-&gt;CardText.end(); IT++){
			ost &lt;&lt; Iter-&gt;CardText[TextPositonCounter] &lt;&lt; &quot; &quot;;
			if(TextPositonCounter % 9 == 0) ost &lt;&lt; endl;
			TextPositonCounter++;
		}
		ost &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
		CardCounter++;
	}
	ost &lt;&lt; &quot;--------------------[Print: End]--------------------&quot; &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/306651/print</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 11:54:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306651.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Aug 2012 15:30:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 15:30:02 GMT]]></title><description><![CDATA[<p>Hallo, ich habe ein paar kleine Formatierungsprobleme auf meinem outstream.<br />
momentan verwende ich noch COUT um die Formatierung zu regeln, später im Programm werde ich stattdessen fstream verwenden um auf eine txt-Datei zu schreiben.</p>
<p>Habe momentan das Problem, dass ich gerne folgende Ausgabe hätte:</p>
<pre><code class="language-cpp">// auf dem Outstream
PictureLink                                              MyLink
CardName                                              BlaBlaBla
Edition                                                     MMM
Rareness                                                   Rare
Colour                                                    Black
ManaCosts                                                  1+3B
CardType                                              Neverever
Price                                                     12.95
</code></pre>
<p>Wie kann ich denn die Variablen rechtsbündig anordnen?? egal was da von meinem selbstgeschriebenem Scanner an Stringlängen so ankommt? Also ich möchte quasi die strings und doubles die ich habe schön untereinander rechtsbündig am Outstream enden lassen...</p>
<p>Problem 2:</p>
<p>Ich habe einen Vector aus strings und möchte den darin gespeicherten text so ausgeben das sinnvolle Zeilenumbrüche ab einer gewissen Länge gemacht werden</p>
<pre><code class="language-cpp">//Outstream
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text
</code></pre>
<pre><code class="language-cpp">//Meine aktuelle Print-Methode
void CardReader::Print(std::ostream &amp; ost) const {		// Zugriff auf PrivateMember funktioniert nicht (Iterator-Fehler)

	size_t CardCounter = 1;

	ost &lt;&lt; &quot;--------------------[Print: Vector]--------------------&quot; &lt;&lt; endl;

	for (std::vector&lt;CardInformation&gt;::const_iterator Iter = Vect.begin(); Iter != Vect.end(); Iter++) {
		ost &lt;&lt; &quot;--------------[Karte aus VektorPosition &quot; &lt;&lt; CardCounter &lt;&lt; &quot;]--------------&quot; &lt;&lt; endl;

		ost &lt;&lt; setfill(' ') &lt;&lt; cPictureLink &lt;&lt; setw(55) &lt;&lt; Iter-&gt;PictureLink &lt;&lt; endl;
		ost &lt;&lt; cCardName    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;CardName    &lt;&lt; endl;
		ost &lt;&lt; cEdition     &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Edition     &lt;&lt; endl;
		ost &lt;&lt; cRareness    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Rareness    &lt;&lt; endl;
		ost &lt;&lt; cColour      &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Colour      &lt;&lt; endl;
		ost &lt;&lt; cManaCosts   &lt;&lt; setw(55) &lt;&lt; Iter-&gt;ManaCosts   &lt;&lt; endl;
		ost &lt;&lt; cCardType    &lt;&lt; setw(55) &lt;&lt; Iter-&gt;CardType    &lt;&lt; endl;
		ost &lt;&lt; cPrice       &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Price       &lt;&lt; endl;
		ost &lt;&lt; cTournaments &lt;&lt; setw(55) &lt;&lt; Iter-&gt;Tournaments &lt;&lt; endl;

		size_t TextPositonCounter = 0;
		ost &lt;&lt; cCardText    &lt;&lt; endl;
		for(std::vector&lt;std::string&gt;::const_iterator IT = Iter-&gt;CardText.begin(); IT != Iter-&gt;CardText.end(); IT++){
			ost &lt;&lt; Iter-&gt;CardText[TextPositonCounter] &lt;&lt; &quot; &quot;;
			if(TextPositonCounter % 9 == 0) ost &lt;&lt; endl;
			TextPositonCounter++;
		}
		ost &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
		CardCounter++;
	}
	ost &lt;&lt; &quot;--------------------[Print: End]--------------------&quot; &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238371</guid><dc:creator><![CDATA[MathiasS]]></dc:creator><pubDate>Fri, 03 Aug 2012 15:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 15:48:40 GMT]]></title><description><![CDATA[<p>Problem 0: Da die Streams alle gleich sind, wird eine Lösung für einen Stream für alle funktionieren<br />
Problem 1: Rechtsbündig und Linksbündig:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;array&gt;
#include &lt;vector&gt;

int main()
{
  using namespace std;
  vector&lt;array&lt;string, 2&gt;&gt; foo = {{&quot;Hallo&quot;, &quot;Welt&quot;}, {&quot;Tri Tra Tru&quot;, &quot;lala&quot;},{&quot;Der Kapser der&quot;, &quot;ist wieder da&quot;}};

  cout &lt;&lt; &quot;Unformatiert:\n&quot;;
  for(unsigned i = 0; i &lt; foo.size(); ++i)
    {
      cout &lt;&lt; foo[i][0] &lt;&lt; foo[i][1] &lt;&lt; '\n';
    }
  cout &lt;&lt; &quot;\n\nFormatiert:\n&quot;;
  for(unsigned i = 0; i &lt; foo.size(); ++i)
    {
      // HIER steht das wichtige, der Rest des Programms ist bloß Drumherum für das Beispiel
      cout &lt;&lt; setw(15) &lt;&lt; left &lt;&lt; foo[i][0];
      cout &lt;&lt; setw(15) &lt;&lt; right &lt;&lt; foo[i][1] &lt;&lt; '\n';
    }
}
</code></pre>
<p>Problem 2: Automatischer Zeilenumbruch. Eieiei, das ist ein bisschen schwieriger. Es ist möglich. Du wirst aber dafür einen eigenen Streambuf brauchen, der die Zeichen mitzählt, puffert, an der richtigen Stelle Trennzeichen einfügt und erst dann weitergibt, wenn er sicher ist, dass die Zeile ganz ist. Irgendwo hier im Forum geistert so etwas herum (wahrscheinlich von Autor Werner Salomon, eventuell auch von mir). Ich habe aber gerade keine Zeit, das zu suchen. Wenn du Glück hast liest Werner diesen Thread und zeigt es dir oder du findest es selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238378</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 15:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 15:56:45 GMT]]></title><description><![CDATA[<p>MathiasS schrieb:</p>
<blockquote>
<p>// auf dem Outstream<br />
PictureLink MyLink</p>
</blockquote>
<p>Ginge mit</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;stdexcept&gt;

struct Printer
{
    Printer(size_t toRight):
    mtoRight(toRight) {}

    std::string operator()(std::string const&amp; first, std::string const&amp; second)
    {
        if(static_cast&lt;int&gt;(mtoRight) - static_cast&lt;int&gt;(second.length()) - static_cast&lt;int&gt;(first.length()) &lt;= 0)
            throw std::logic_error(&quot;Printer::operator(): The amount of characters to the right size is invalid!&quot;);
        return first + std::string(mtoRight - second.length() - first.length(), ' ') + second;
    }

private:

    size_t mtoRight;
};

int main()
{
    Printer p(20);
    std::cout &lt;&lt; p(&quot;Hallo&quot;, &quot;Welt!&quot;) &lt;&lt; '\n'
              &lt;&lt; p(&quot;Bestellung:&quot;, &quot;Kaese&quot;);

}
</code></pre>
<p>Zum Problem Zwei: Wann genau das passiert musst du selbst definieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238379</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 03 Aug 2012 15:56:45 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 15:59:46 GMT]]></title><description><![CDATA[<p>Hallo schon mal danke für deine Antwort!</p>
<p>Ich glaube das Problem aus Beispiel 2 habe ich vllt nicht genau genug beschrieben:</p>
<p>die Sachen die links stehen bei mir als zb CardName, PictureLink usw...<br />
sind leider unterschiedlich lang!</p>
<p>Die Sachen die rechts davon untereinander stehen sollen sind je nach Scannereinlesen IMMER unterschiedlich lang, das weiß ich vorher noch nicht welche strings und doubles das werden.</p>
<p>Drum wird das glaube ich mit dem Iomanip nicht funktionieren, weil da die jeweiligen zeilen ja kein einheitliches Ende haben oder?</p>
<p>also habs mal so umgeschrieben:</p>
<pre><code class="language-cpp">ost &lt;&lt; cPictureLink &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;PictureLink &lt;&lt; endl;
		ost &lt;&lt; cCardName    &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;CardName    &lt;&lt; endl;
		ost &lt;&lt; cEdition     &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;Edition     &lt;&lt; endl;
		ost &lt;&lt; cRareness    &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;Rareness    &lt;&lt; endl;
		ost &lt;&lt; cColour      &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;Colour      &lt;&lt; endl;
		ost &lt;&lt; cManaCosts   &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;ManaCosts   &lt;&lt; endl;
		ost &lt;&lt; cCardType    &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;CardType    &lt;&lt; endl;
		ost &lt;&lt; cPrice       &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;Price       &lt;&lt; endl;
		ost &lt;&lt; cTournaments &lt;&lt; setw(55) &lt;&lt; right &lt;&lt; Iter-&gt;Tournaments &lt;&lt; endl;
</code></pre>
<p>erhalte dadurch dann aber für jede zeile ein anderes Ende leider <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title="=/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238381</guid><dc:creator><![CDATA[MathiasS]]></dc:creator><pubDate>Fri, 03 Aug 2012 15:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:04:19 GMT]]></title><description><![CDATA[<p>Du willst praktisch einen Blocksatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238382</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:06:59 GMT]]></title><description><![CDATA[<p>Hier noch als Nachtrag das vorläufige einzulesende File ( das echte File wird mehrere tausend Zeilen lang sein... )</p>
<p>Wie man sieht wird jede karte am Outstream ausgegeben und es soll auch jede Karte von ihren Variablen her gleich formatiert sein</p>
<pre><code class="language-cpp">X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 

PictureLink     MyLink
CardName        Vampire Nocturnus
Edition         M13
Rareness        Mythic Rare
Colour          Black
ManaCosts       1 + 3B
CardType        Creature - Vampire
Price           12.95 Euro

Tournaments		Vintage | Legacy | Extended | Modern | Standard

CardText 
Play with the top card of your library revealed. As long as the top card of your library is black, 
Vampire Nocturnus and other Vampire creatures you control get +2/+1 and have flying.
Strength 3 | Weakness 3

X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 

PictureLink	    MyLink
CardName        Lightning Bolt
Edition         M10
Rareness        Cummon
Colour          Red
ManaCosts       1R
CardType        Instant
Price           0.99 Euro

Tournaments		Vintage | Legacy | Extended | Modern | Standard

CardText
Lightning Bolt deals 3 damage to target creature or player.

X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 

PictureLink	    Blabla
CardName        Blabla
Edition         Blabla
Rareness        Blabla
Colour          Blabla
ManaCosts       Blabla
CardType        Blabla
Price           11.1 Euro

Tournaments		Blabla| Blabla | Blabla | Blabla | Blabla

CardText
Blabla Blabla Blabla Blabla Blabla Blabla.

X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238383</guid><dc:creator><![CDATA[MathiasS]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:07:56 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Du willst praktisch einen Blocksatz.</p>
</blockquote>
<p>LOL so einfach hätte man es auch sagen können -,-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238384</guid><dc:creator><![CDATA[MathiasS]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:08:26 GMT]]></title><description><![CDATA[<p>Bitte lies meine Antwort, insbesondere mein Beispielprogramm <strong>genau</strong>! Führ es zur Not selber aus, wenn du mir nicht glaubst:</p>
<pre><code>Unformatiert:
HalloWelt
Tri Tra Trulala
Der Kapser derist wieder da

Formatiert:
Hallo                     Welt
Tri Tra Tru               lala
Der Kapser der   ist wieder da
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238385</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:08:26 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:20:22 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bitte lies meine Antwort, insbesondere mein Beispielprogramm <strong>genau</strong>! Führ es zur Not selber aus, wenn du mir nicht glaubst:</p>
<pre><code>Unformatiert:
HalloWelt
Tri Tra Trulala
Der Kapser derist wieder da

Formatiert:
Hallo                     Welt
Tri Tra Tru               lala
Der Kapser der   ist wieder da
</code></pre>
</blockquote>
<p>Ah ok jetzt gehts dankö <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238395</guid><dc:creator><![CDATA[MathiasS]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to Print on Fri, 03 Aug 2012 16:22:33 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bitte lies meine Antwort, insbesondere mein Beispielprogramm <strong>genau</strong>!</p>
</blockquote>
<p>War fuer ihn ein typischer Fall von tl:dr...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238397</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 03 Aug 2012 16:22:33 GMT</pubDate></item></channel></rss>