<?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[Ausgabeproblem]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier eine Methode, die mir eine Ringliste ausgeben soll. Leider endet dies immer in eine Endlosschleife und ich weiß nicht woran es liegt. Es kann aber nur an der Methode liegen:</p>
<pre><code class="language-cpp">void ringlist::Print()
{
	element *curr = head;

	cout &lt;&lt; &quot;Ringliste: &quot;;
	do
	{
		cout &lt;&lt; curr-&gt;val &lt;&lt; &quot; &quot;;
		curr = curr-&gt;next;
	}
	while(curr != head);

	cout &lt;&lt; endl;
}
</code></pre>
<p>Vielleicht kann mal einer von euch Prof's ein Auge drauf werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303276/ausgabeproblem</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 13:51:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303276.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 May 2012 16:49:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 16:49:02 GMT]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier eine Methode, die mir eine Ringliste ausgeben soll. Leider endet dies immer in eine Endlosschleife und ich weiß nicht woran es liegt. Es kann aber nur an der Methode liegen:</p>
<pre><code class="language-cpp">void ringlist::Print()
{
	element *curr = head;

	cout &lt;&lt; &quot;Ringliste: &quot;;
	do
	{
		cout &lt;&lt; curr-&gt;val &lt;&lt; &quot; &quot;;
		curr = curr-&gt;next;
	}
	while(curr != head);

	cout &lt;&lt; endl;
}
</code></pre>
<p>Vielleicht kann mal einer von euch Prof's ein Auge drauf werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209930</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Wed, 09 May 2012 16:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 16:56:34 GMT]]></title><description><![CDATA[<p>Dann wird wohl dein Ring nicht geschlossen sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209934</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 09 May 2012 16:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 16:59:32 GMT]]></title><description><![CDATA[<p>D.h., ich muss den Fehler in der anderen Fkt. suchen...</p>
<pre><code class="language-cpp">void ringlist::Append(int val)
{
	element* elem = new element;

	elem-&gt;val = val;
	elem-&gt;next = head;

	element* head_temp = head;

	if(head == NULL)
	{
		head = elem;
		head-&gt;next = elem;
	}
	else
	{
		while(head_temp-&gt;next != head)
		{
			head_temp = head_temp-&gt;next;
		}

		head_temp-&gt;next = elem;
	}
}
</code></pre>
<p>Die Methode die mir den Ring erzeugt, hab ich Append() genannt. Der else-Zweig sollte eigentlich den Ring schließen...; was aber anscheinend nicht tut. Weshalb er das nicht tut, bin ich aber überfragt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209935</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Wed, 09 May 2012 16:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 17:06:53 GMT]]></title><description><![CDATA[<p>Zeig doch mal ein vollständiges Beispiel, anstatt Funktionen, von denen <strong>du</strong> denkst, dass sie fehlerhaft sind. Aber kürz vorher alles aus dem Beispiel raus, was nicht relevant ist, so dass der Fehler so gerade noch eintritt. Falls du zwischendurch etwas herauskürzt und der Fehler tritt plötzlich nicht mehr auf, dann hast du die Fehlerstelle mit hoher Wahrscheinlichkeit gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209938</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 09 May 2012 17:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 17:14:51 GMT]]></title><description><![CDATA[<p>Also....</p>
<p>Ich rufe aus der main die append() so auf:</p>
<pre><code class="language-cpp">for(int i=1; i&lt;=6; i++)
	{
		myRingList.Append(i);
	}
</code></pre>
<p>dann kommt die Print() wie oben zum Einsatz.</p>
<p>Hier funktioniert dann noch alles.</p>
<p>Ich hab dann noch eine Methode die mir bestimmte values aus der Liste löscht.</p>
<pre><code class="language-cpp">if(curr-&gt;val == gZ [i])
			{
				temp = curr-&gt;val;

				if(prev == NULL)
				{
					head = curr-&gt;next;
				}
				else
				{
					prev-&gt;next = curr-&gt;next;
				}
			}
			else
			{
				prev = curr;
				curr = curr-&gt;next;
			}
</code></pre>
<p>Die wird jetzt aufgerufen. Danach geht es nicht mehr. Wenn ich nun bspw. das element mit dem value 1 lösche, ich mir dann das ehemalige head-Element lsöche?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209943</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Wed, 09 May 2012 17:14:51 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 17:52:24 GMT]]></title><description><![CDATA[<p>Ich glaube, so kommen wir hier auf keinen grünen Zweig. Ich zumindest will keine Programmteile zusammenflicken, um dann irgendwann eventuell ein kompilierbares Programm zu erhalten. Ein komplettes Porgramm sagt mehr als tausend Worte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2209971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2209971</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 May 2012 17:52:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 20:19:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef ELEMENT__H
#define ELEMENT__H

class element
{
public:
	int val;
	element *next;
};

#endif
</code></pre>
<pre><code class="language-cpp">#ifndef RINGLIST__H
#define RINGLIST__H
#include&quot;element.h&quot;

class ringlist
{
private:
	element *head;

public:
	ringlist();
	~ringlist();

	element* GetFirstElement();	//Gibt erstes Element zurück
	void Append(int value);	//Fügt Element hinzu
	void DeleteElement(element* first, int gZ[]);	//Löscht Element anhand von gZ
	void Print();	//Gibt Ringliste aus
};

#endif
</code></pre>
<pre><code class="language-cpp">void ringlist::DeleteElement(element* f)	//f=firstElement: bekommt man durch GetFirstElement()
{
	element* curr = head;
	element* prev = head-&gt;next;
	int temp = 0;

		if(curr-&gt;val == 1)   //ab hier wird nun das Element mit val=1 gelöscht...
		{
			temp = curr-&gt;val;

			if(prev == NULL)
			{
				head = curr-&gt;next;
			}
			else
			{
				prev-&gt;next = curr-&gt;next;
			}
		}
		else
		{
			prev = curr;
			curr = curr-&gt;next;
		}
}
</code></pre>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&quot;ringlist.h&quot;
using namespace std;

int main()
{
	ringlist myRingList;

	for(int i=1; i&lt;=6; i++)
	{
		myRingList.Append(i);
	}

	myRingList.Print();  //bis hierhin funktioniert das Programm

	myRingList.ReturnDeleteElement(myRingList.GetFirstElement());  

	myRingList.Print();  //...und jetzt bekomm ich als Ausgabe eine Endlosschleife

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2210015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210015</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Wed, 09 May 2012 20:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabeproblem on Wed, 09 May 2012 21:18:00 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void DeleteElement(element* first, int gZ[]);	//Löscht Element anhand
</code></pre>
<pre><code class="language-cpp">void ringlist::DeleteElement(element* f)
</code></pre>
</blockquote>
<p>Wie denn nun? Außerdem fehlt die Hälfte. So geht das durch keinen Compiler.</p>
<p>Übrigens sind deine Include-Guards reservierte Bezeichner (enthalten __).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2210030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210030</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 09 May 2012 21:18:00 GMT</pubDate></item></channel></rss>