<?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[Schöne Ausgabe in Konsole]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte eine schöne Ausgabefunktion für meine Konsole schreiben. Der Übersichtlichkeit wegen.</p>
<p>Jetzt lass ich mir eine Matrix ausgeben, das sieht so aus:</p>
<pre><code class="language-cpp">cout.precision(3);
cout.setf(std::ios::scientific);
cout.setf(std::ios::right,std::ios::adjustfield);

for (int i=0;i&lt;3;i++)
{
    for (int j=0;j&lt;3;j++)
        {
        cout &lt;&lt; A[i][j] &lt;&lt; &quot;  |  &quot;;
        }
cout &lt;&lt; endl;
}
</code></pre>
<p>Was jetzt allerdings total schlecht aussieht ist wenn eine Zahl negativ ist...<br />
Dann verschiebts alle Zahlen... Gibts da nen Befehl das er die Zahlen dann so einrückt das die Kommastelle und das e-01 immer untereinander stehen?</p>
<p>Hab mir auch überlegt einfach abzufragen ob eine Zahl &lt; 0 st und wenn ja dann ein Leerzeichen einzusetzen. Aber ich such ne schönere Lösung...</p>
<p>Gibts da was?</p>
<p>Danke soweit mfg Casicas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306755/schöne-ausgabe-in-konsole</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 21:16:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306755.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Aug 2012 16:42:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 16:42:49 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte eine schöne Ausgabefunktion für meine Konsole schreiben. Der Übersichtlichkeit wegen.</p>
<p>Jetzt lass ich mir eine Matrix ausgeben, das sieht so aus:</p>
<pre><code class="language-cpp">cout.precision(3);
cout.setf(std::ios::scientific);
cout.setf(std::ios::right,std::ios::adjustfield);

for (int i=0;i&lt;3;i++)
{
    for (int j=0;j&lt;3;j++)
        {
        cout &lt;&lt; A[i][j] &lt;&lt; &quot;  |  &quot;;
        }
cout &lt;&lt; endl;
}
</code></pre>
<p>Was jetzt allerdings total schlecht aussieht ist wenn eine Zahl negativ ist...<br />
Dann verschiebts alle Zahlen... Gibts da nen Befehl das er die Zahlen dann so einrückt das die Kommastelle und das e-01 immer untereinander stehen?</p>
<p>Hab mir auch überlegt einfach abzufragen ob eine Zahl &lt; 0 st und wenn ja dann ein Leerzeichen einzusetzen. Aber ich such ne schönere Lösung...</p>
<p>Gibts da was?</p>
<p>Danke soweit mfg Casicas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239380</guid><dc:creator><![CDATA[Casicas131]]></dc:creator><pubDate>Mon, 06 Aug 2012 16:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 17:14:10 GMT]]></title><description><![CDATA[<p>spiel mal mit setw und setfill(hier mit leerzeichen, um das minus zu umgehen) rum, du brauchst dafür die iomanip als include.</p>
<pre><code>cout &lt;&lt; setfill (' ')&lt;&lt;setw(10)&lt;&lt;A[i][j] &lt;&lt; &quot;  |  &quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2239388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239388</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Mon, 06 Aug 2012 17:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 19:46:42 GMT]]></title><description><![CDATA[<p>ansonsten geht glaub ich auch</p>
<pre><code>'\t'
</code></pre>
<p>als Tabulator. hab aber grad nicht vor Augen, ob der auf bestimmte Positionen springt, oder einfach nur 5 Leerzeichen oder so.</p>
<p>EDIT: es sind die feste Anzahl an Leerzeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239421</guid><dc:creator><![CDATA[Clundsch]]></dc:creator><pubDate>Mon, 06 Aug 2012 19:46:42 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 19:57:09 GMT]]></title><description><![CDATA[<p>Clundsch schrieb:</p>
<blockquote>
<p>ansonsten geht glaub ich auch</p>
<pre><code>'\t'
</code></pre>
<p>als Tabulator. hab aber grad nicht vor Augen, ob der auf bestimmte Positionen springt, oder einfach nur 5 Leerzeichen oder so.</p>
<p>EDIT: es sind die feste Anzahl an Leerzeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Was ein Tabluator macht, ist systemabhängig. Er wird aber allgemein als ein Trennzeichen angesehen. Kommt eben drauf an, was die Macher der Darstellung eines Tabulators sich unter einer sauberen Trennung vorstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239431</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 06 Aug 2012 19:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 23:13:33 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a><br />
Wobei man davon ausgehen kann dass ein Tab <em>üblicherweise</em> zu einem &quot;Weiterschieben&quot; des Cursors auf den nächsten &quot;Tab-Stop&quot; führt, und die &quot;Tab-Stops&quot; mindestens 4 Zeichen weit auseinanderliegen.</p>
<p>Wenn man nicht den Anspruch stellt dass es auf allen denkbaren Plattformen unbedingt gut aussieht, kann das also durchaus ein akzeptabler Weg sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239470</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 06 Aug 2012 23:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Mon, 06 Aug 2012 23:17:09 GMT]]></title><description><![CDATA[<p>Clundsch schrieb:</p>
<blockquote>
<p>hab aber grad nicht vor Augen, ob der auf bestimmte Positionen springt, oder einfach nur 5 Leerzeichen oder so.</p>
<p>EDIT: es sind die feste Anzahl an Leerzeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Also auf Windows (cmd.exe von Windows 7) sind es feste Positionen, nicht feste Anzahl Leerzeichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239471</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 06 Aug 2012 23:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 00:39:52 GMT]]></title><description><![CDATA[<p>Eine andere Möglichkeit wäre, die Tabelle zu buffern, den breitesten Wert einer Spalte rausfinden, um eine Konstante addieren und dann mithilfe des errechneten Wertes das setw für eine Spalte festzulegen. Für gewöhnlich ist das Ausgeben auf die Konsole so langsam, dass man selbst nen 10x buffern nicht bemerkt <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/2239481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239481</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 07 Aug 2012 00:39:52 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 01:29:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename T&gt;
size_t maxWidth(const T&amp; table, size_t xPos, size_t yDim)
{
	size_t width = 0;
	size_t length;
	for (size_t y = 0; y &lt; yDim; ++y)
	{
		std::ostringstream oStream;
		oStream &lt;&lt; table[xPos][y];
		length = oStream.str().length();
		if (width &lt; length)
			width = length;
	}
	return width;
}

template&lt;typename T&gt;
void printArray2D(const T&amp; table, size_t xDim, size_t yDim)
{
	// lookuptable für Breite erstellen
	size_t width[xDim];
	for (size_t x = 0; x &lt; xDim; ++x)
		width[x] = maxWidth(table, x, yDim);

	for (size_t y = 0; y &lt; yDim; ++y)
	{
		for (size_t x = 0; x &lt; xDim; ++x)
		{
			if (x)
				std::cout &lt;&lt; &quot; | &quot;;
			std::cout &lt;&lt; std::setw(width[x]) &lt;&lt; table[x][y];
		}
		std::cout &lt;&lt; std::endl;
	}
}

int main(void)
{
	const size_t DIM_X = 2;
	const size_t DIM_Y = 3;
	int matrix[DIM_X][DIM_Y] = {{165464, 222, 32}, {874, -5665, 62456546}};
	printArray2D(matrix, DIM_X, DIM_Y);
}
</code></pre>
<p>ergibt die Ausgabe:</p>
<pre><code>165464 |      874
   222 |    -5665
    32 | 62456546
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2239482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239482</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 07 Aug 2012 01:29:50 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 08:12:40 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a><br />
Wobei man davon ausgehen kann dass ein Tab <em>üblicherweise</em> zu einem &quot;Weiterschieben&quot; des Cursors auf den nächsten &quot;Tab-Stop&quot; führt, und die &quot;Tab-Stops&quot; mindestens 4 Zeichen weit auseinanderliegen.</p>
</blockquote>
<p>Das hätte ich auch gedacht, vor dem Beitrag von Cyres, der offenbar in Windows getestet hat und ein anderes als das mir von Linuxkonsolen bekannte Verhalten beobachtet hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239513</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 07 Aug 2012 08:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 10:37:06 GMT]]></title><description><![CDATA[<p>Ich habe seit glaube ich 2 Jahren nicht mehr unter Windows programmiert, hatte ich mich denn zu TabStops geäußert? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239569</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 07 Aug 2012 10:37:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 10:47:56 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>Ich habe seit glaube ich 2 Jahren nicht mehr unter Windows programmiert, hatte ich mich denn zu TabStops geäußert? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Ups, das warst gar nicht du, sondern Clundsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239572</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 07 Aug 2012 10:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 10:55:30 GMT]]></title><description><![CDATA[<p>Ich glaube, dich verwirren hustbaers und mein Doppelpost <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Also auf Windows (cmd.exe von Windows 7) sind es feste Positionen, nicht feste Anzahl Leerzeichen.</p>
</blockquote>
<p>Könnte natürlich auch sein, dass es nicht Systemabhängig, sondern Konsolenabhängig ist. Ich glaube kaum, dass man cmd mit Powershell vergleichen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239573</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 07 Aug 2012 10:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 17:00:49 GMT]]></title><description><![CDATA[<p>PowerShell hab ich nicht ausprobiert.<br />
cmd.exe (kann hier nur Windows 7 probieren, hab' keine XP Installation griffbereit) macht wie gesagt fixe Tab-Stops.</p>
<p>Auch haben Tabs den Vorteil dass die so entstandenen Files einfach in alle möglichen Programme importierbar sind.<br />
Spalten mit Fixbreite (Space-Padding) fressen wohl auch die meisten Programme, nur kann man da u.U. Probleme bekommen wenn ein Wert in einer Spalte doch mal zu lange wird, und man muss manchmal mit Hand &quot;nachbessern&quot;, wenn das importierende Programm Spalten erkennt die gar nicht da sind.</p>
<p>Space-Padding + Trennzeichen (&quot;;&quot; oder sowas) wäre vermutlich noch eine gute Option. ISAM FTW <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239752</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 07 Aug 2012 17:00:49 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Tue, 07 Aug 2012 17:04:39 GMT]]></title><description><![CDATA[<p>Für das schreiben in Dateien würde ich auch auf jedenfall Tabs benutzen, ich habe mich allerdings am Topic-Titel orientiert <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/2239755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239755</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 07 Aug 2012 17:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to Schöne Ausgabe in Konsole on Wed, 08 Aug 2012 08:49:07 GMT]]></title><description><![CDATA[<p>Dank euch für die Hilfe....<br />
Ich benutze das &quot;setfill&quot; und es funktioniert perfekt...</p>
<p>schönen Tag Cascoin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239967</guid><dc:creator><![CDATA[Casicas131]]></dc:creator><pubDate>Wed, 08 Aug 2012 08:49:07 GMT</pubDate></item></channel></rss>