<?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[einfach verkettete Liste]]></title><description><![CDATA[<p>Hi<br />
ich bin ein Anfänger was c++ und Programmieren betrifft und wollte selbst ein Programm schreiben womit ich eine Aufgabenliste verwalten kann.<br />
Allerdings tritt ein Problem auf:<br />
Nachdem ich die Elemente von der Tastatur eingelesen habe und sie wieder ausgeben will, wird immer nur die letzte Eingabe ausgegeben(dafür aber so oft wie ich Eingaben getätigt habe). Wenn ich allerdings an die Funktion insert z.B. &quot;Hallo&quot;, &quot;Guten Tag&quot; und &quot;Morgen&quot; übergebe, werden die Elemente korrkt ausgegeben.</p>
<p>Ich sitze an diesem Problem schn seit Tagen und auch wenn ich weiß, dass das hier umfangreich ist, so bitte ich euch trotzdem um eure Hilfe weil ich echt nicht mehr weiter weiß.</p>
<p>Vielen Dank<br />
Sebastian</p>
<p>Die Header-Datei:</p>
<pre><code class="language-cpp">//Programm zu Verwaltung einer Todoliste
//Datei: todo.h enthaellte die Klassen 
//	Listel fuer ein Listenelement welches den eigentlichen Eintrag des Todolistenelements enthaellt
//	Todo zur Verwaltung der Listemelemente

#include &lt;iostream&gt;

using namespace std;

class Listel{
private:
	char *ptr;
	Listel *next;

public:
	Listel(const char *c):ptr(c){
		next=0;
	}
	char *getData(void){
		return ptr;
	}
	print(){
		while(*ptr){
			cout&lt;&lt;*ptr++;
		}
	}
	friend class Todo;		//da Todo &quot;next&quot; fuer die Verwaltung der Liste benötigt
};

class Todo{
private:
	Listel *first;

public:
	Todo(){
		first=0;
	}
	void insert(const char *c){
		Listel *l=new Listel(c);
		Listel *p=first;
		if(first==NULL){
			first=l;
		}
		else{
			for(;p-&gt;next!=NULL;p=p-&gt;next);
			p-&gt;next=l;

		}
		p=first;
	}
	void print(){
		Listel *ptr;
		ptr=first;
		while(ptr!=NULL){
			cout&lt;&lt;endl&lt;&lt;ptr-&gt;getData();
			ptr=ptr-&gt;next;
		}		
	}
};
</code></pre>
<p>Die Quellcodedatei:</p>
<pre><code class="language-cpp">#include &quot;todo.h&quot;

using namespace std;

main(){
	Todo t;
	char c[20];

	cin.getline(c,20);
	t.insert(c);	

	cin.getline(c,20);
	t.insert(c);

        cin.getline(c,20);
	t.insert(c);

	t.print();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/120063/einfach-verkettete-liste</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 05:34:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120063.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Sep 2005 14:10:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 14:10:46 GMT]]></title><description><![CDATA[<p>Hi<br />
ich bin ein Anfänger was c++ und Programmieren betrifft und wollte selbst ein Programm schreiben womit ich eine Aufgabenliste verwalten kann.<br />
Allerdings tritt ein Problem auf:<br />
Nachdem ich die Elemente von der Tastatur eingelesen habe und sie wieder ausgeben will, wird immer nur die letzte Eingabe ausgegeben(dafür aber so oft wie ich Eingaben getätigt habe). Wenn ich allerdings an die Funktion insert z.B. &quot;Hallo&quot;, &quot;Guten Tag&quot; und &quot;Morgen&quot; übergebe, werden die Elemente korrkt ausgegeben.</p>
<p>Ich sitze an diesem Problem schn seit Tagen und auch wenn ich weiß, dass das hier umfangreich ist, so bitte ich euch trotzdem um eure Hilfe weil ich echt nicht mehr weiter weiß.</p>
<p>Vielen Dank<br />
Sebastian</p>
<p>Die Header-Datei:</p>
<pre><code class="language-cpp">//Programm zu Verwaltung einer Todoliste
//Datei: todo.h enthaellte die Klassen 
//	Listel fuer ein Listenelement welches den eigentlichen Eintrag des Todolistenelements enthaellt
//	Todo zur Verwaltung der Listemelemente

#include &lt;iostream&gt;

using namespace std;

class Listel{
private:
	char *ptr;
	Listel *next;

public:
	Listel(const char *c):ptr(c){
		next=0;
	}
	char *getData(void){
		return ptr;
	}
	print(){
		while(*ptr){
			cout&lt;&lt;*ptr++;
		}
	}
	friend class Todo;		//da Todo &quot;next&quot; fuer die Verwaltung der Liste benötigt
};

class Todo{
private:
	Listel *first;

public:
	Todo(){
		first=0;
	}
	void insert(const char *c){
		Listel *l=new Listel(c);
		Listel *p=first;
		if(first==NULL){
			first=l;
		}
		else{
			for(;p-&gt;next!=NULL;p=p-&gt;next);
			p-&gt;next=l;

		}
		p=first;
	}
	void print(){
		Listel *ptr;
		ptr=first;
		while(ptr!=NULL){
			cout&lt;&lt;endl&lt;&lt;ptr-&gt;getData();
			ptr=ptr-&gt;next;
		}		
	}
};
</code></pre>
<p>Die Quellcodedatei:</p>
<pre><code class="language-cpp">#include &quot;todo.h&quot;

using namespace std;

main(){
	Todo t;
	char c[20];

	cin.getline(c,20);
	t.insert(c);	

	cin.getline(c,20);
	t.insert(c);

        cin.getline(c,20);
	t.insert(c);

	t.print();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/867896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867896</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Thu, 08 Sep 2005 14:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 14:15:22 GMT]]></title><description><![CDATA[<p>Musst du das Rad unbedingt neu erfinden ??</p>
<p>Wenn nicht, dann solltest du std::list<br />
oder halt einen anderen passenden STL-<br />
Container verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867902</guid><dc:creator><![CDATA[Redhead]]></dc:creator><pubDate>Thu, 08 Sep 2005 14:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 14:21:41 GMT]]></title><description><![CDATA[<p>Ich hab leider absolut keine Ahnung was ein STL-Container ist. Wie gesagt ich bin halt Anfänger.<br />
Außerdem wollte ich auch gucken, ob ich das was ich bisher gelernt habe auch beherrsche(sieht leider nicht so aus).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867909</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Thu, 08 Sep 2005 14:21:41 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 14:33:57 GMT]]></title><description><![CDATA[<p>verwende strings statt c-style arrays. wenn du insert aufrufst nimmt die liste nur einen pointer auf den puffer c auf, der puffer selbst wird nicht kopiert. demzufolge sind alle änderungen in c in allen listenelementen sichtbar. wenn du literale übergibst, übergibst du dagegen stets andere pointer. im übrigen noch sind noch einige fehler bzgl. const drin, die dir der compiler eigentlich nicht durchgehen lassen dürfte:</p>
<pre><code class="language-cpp">Listel(const char *c):ptr(c){
        next=0;
   }
</code></pre>
<p>hier wird ein zeiger auf const char in einen zeiger auf char gewandelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867917</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 08 Sep 2005 14:33:57 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 17:38:13 GMT]]></title><description><![CDATA[<p>Gibt es eine Möglichkeit wie ich es trotzdem noch zum laufen kriegen bekomme ohne die String-Klasse zu verwenden.<br />
Danke schon mal für die schnellen Antworten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/868017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868017</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Thu, 08 Sep 2005 17:38:13 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Thu, 08 Sep 2005 21:14:37 GMT]]></title><description><![CDATA[<p>Ich wäre wirklich dankbar für eine Antwoirt, da ich jetzt zwar weiß worin der fehler besteht, jedoch weiß ich micht wie ich ihn beheben kann.<br />
thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868281</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Thu, 08 Sep 2005 21:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Fri, 09 Sep 2005 08:33:31 GMT]]></title><description><![CDATA[<p>dein c'tor einen const char* und du versuchst diesen einem char* zuzuweisen. Du musst halt einfach einen const char* benutzen, einen Zeiger auf etwas Konstantes..<br />
In deinem Fall:</p>
<pre><code class="language-cpp">const char *ptr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/868369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868369</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Fri, 09 Sep 2005 08:33:31 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Fri, 09 Sep 2005 07:47:41 GMT]]></title><description><![CDATA[<p>Das hab ich versucht aber es funktioniert immer noch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868412</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Fri, 09 Sep 2005 07:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Fri, 09 Sep 2005 08:39:29 GMT]]></title><description><![CDATA[<p>du musst das natuerlich auch in Methoden wie getData anpassen, die geben jetzt auch const char* zurueck.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868435</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Fri, 09 Sep 2005 08:39:29 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Fri, 09 Sep 2005 09:03:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Listel{
public:
    Listel(const char* c)
        : next()
    {
        strncpy( s, c, sizeof s - 1 );
        s[ sizeof s - 1 ] = 0;
    }
    char *getData(void){
        return s;
    }
    print(){
        cout &lt;&lt; s;
        }
    }
    Listel *next;
private:
    char s[21];
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/868449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868449</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 09 Sep 2005 09:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to einfach verkettete Liste on Fri, 09 Sep 2005 11:11:23 GMT]]></title><description><![CDATA[<p>danke aber jetzt habe ich immer noch das Problem, dass ich immer noch den Puffer von c aufrufe und zum Schluß drei mal den gleichen Wert in die Liste geschrieben habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868532</guid><dc:creator><![CDATA[mxpower]]></dc:creator><pubDate>Fri, 09 Sep 2005 11:11:23 GMT</pubDate></item></channel></rss>