<?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[Ifstream Operator Überladung]]></title><description><![CDATA[<p>Hey Leute,</p>
<p>habe ein Kundenobjekt mit 2 Char arrays und einem int.<br />
Soll den vornamen, nachnamen und die nummer aus einer Datei lesen und dazu den Operator &gt;&gt; überladen.</p>
<p>Finde nichts passendes in google und komme auch nicht richtig weiter.</p>
<p>In der Kunde.h</p>
<p>friend ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k);</p>
<p>Die Membervariablen sind Private</p>
<p>In der Kunde.cpp</p>
<p>ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k)<br />
{<br />
char *vname = NULL;<br />
char *nname = NULL;<br />
unsigned int knr;</p>
<p>ifs &gt;&gt; knr;<br />
ifs &gt;&gt; vname;<br />
ifs &gt;&gt; nname;<br />
k.setKunde(vname,nname,knr);</p>
<p>// ifs &gt;&gt; k.setKnr(??) &gt;&gt; k.setVname(??) &gt;&gt; k.setNname(??);<br />
return ifs;<br />
}</p>
<p>Ich müsste ja beim einlesen am besten einen setter hernehmen... der setter macht automatisch auch ... = new char[strlen(x)] usw.<br />
Aber was gebe ich da an.. also die Fragezeichen.</p>
<p>Mein anderer Ansatz will auch nicht, also der nicht Kommentierte.</p>
<p>Hat jmd. vielleicht eine Idee etc. ?! <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/topic/279032/ifstream-operator-überladung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 20:24:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279032.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Dec 2010 17:43:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 17:43:11 GMT]]></title><description><![CDATA[<p>Hey Leute,</p>
<p>habe ein Kundenobjekt mit 2 Char arrays und einem int.<br />
Soll den vornamen, nachnamen und die nummer aus einer Datei lesen und dazu den Operator &gt;&gt; überladen.</p>
<p>Finde nichts passendes in google und komme auch nicht richtig weiter.</p>
<p>In der Kunde.h</p>
<p>friend ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k);</p>
<p>Die Membervariablen sind Private</p>
<p>In der Kunde.cpp</p>
<p>ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k)<br />
{<br />
char *vname = NULL;<br />
char *nname = NULL;<br />
unsigned int knr;</p>
<p>ifs &gt;&gt; knr;<br />
ifs &gt;&gt; vname;<br />
ifs &gt;&gt; nname;<br />
k.setKunde(vname,nname,knr);</p>
<p>// ifs &gt;&gt; k.setKnr(??) &gt;&gt; k.setVname(??) &gt;&gt; k.setNname(??);<br />
return ifs;<br />
}</p>
<p>Ich müsste ja beim einlesen am besten einen setter hernehmen... der setter macht automatisch auch ... = new char[strlen(x)] usw.<br />
Aber was gebe ich da an.. also die Fragezeichen.</p>
<p>Mein anderer Ansatz will auch nicht, also der nicht Kommentierte.</p>
<p>Hat jmd. vielleicht eine Idee etc. ?! <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/1995975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1995975</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 17:43:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 17:45:02 GMT]]></title><description><![CDATA[<p>Sorry, hab vergessen den Code zu formatieren ^^</p>
<pre><code class="language-cpp">ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k)
{
char *vname = NULL;
char *nname = NULL;
unsigned int knr;

ifs &gt;&gt; knr;
ifs &gt;&gt; vname;
ifs &gt;&gt; nname;
k.setKunde(vname,nname,knr);

// ifs &gt;&gt; k.setKnr(??) &gt;&gt; k.setVname(??) &gt;&gt; k.setNname(??);
return ifs;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1995976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1995976</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 17:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 18:31:17 GMT]]></title><description><![CDATA[<p>Keiner eine Idee?</p>
<p>Meine ofstream Methode, also in eine Datei schreiben funktioniert...</p>
<pre><code class="language-cpp">ofstream&amp; operator&lt;&lt;(ofstream &amp;of, const Kunde &amp;k)
{
	of &lt;&lt; k.getKnr() &lt;&lt; &quot;   &quot; &lt;&lt; k.getVname() &lt;&lt; &quot;   &quot; &lt;&lt; k.getNname();
	return of;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1995996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1995996</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 18:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 19:27:44 GMT]]></title><description><![CDATA[<p>currency schrieb:</p>
<blockquote>
<p>Keiner eine Idee?</p>
</blockquote>
<p>Nicht so hastig.</p>
<p>Bevor ich jetzt viel Denkarbeit auf das Thema verschwende: Wie wäre es damit, std::string zu benutzen und so mit einem Schlag alle deine Probleme zu lösen? Falls dies nicht in Frage kommt, nenne bitte einen <strong>guten</strong> Grund dagegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996022</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Dec 2010 19:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:06:24 GMT]]></title><description><![CDATA[<p>Weil das eine Aufgabe ist und man die mit Char Arrays lösen muss. <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/1996035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996035</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:30:29 GMT]]></title><description><![CDATA[<p>Eine Schulhausaufgabe? <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/1996041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996041</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:41:53 GMT]]></title><description><![CDATA[<p>Vielleicht solltest du die char-Pointer auf etwas zeigen lassen bzw. gleich char-Arrays benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996045</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:41:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:42:52 GMT]]></title><description><![CDATA[<p>Ne keine Schulhausaufgabe... verstehe nicht wo das Problem ist...</p>
<p>Und wenn es einfach nur so wäre weil ich wissen will wie das geht oder kein Plan... das is die Frage und mehr nicht..</p>
<p>Naja.. habe es immer noch nicht hingekriegt... Liest aber auhc nicht mal mein INT ein.. komisch..</p>
<pre><code class="language-cpp">ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k)
{
	char *vorname = new char[500];
	char *nachname = new char[500];
	unsigned int knr;

	ifs &gt;&gt; knr &gt;&gt; vorname &gt;&gt; nachname;

	k.setNname(nachname);
	k.setVname(vorname);

	return ifs;
}

ofstream&amp; operator&lt;&lt;(ofstream &amp;of, const Kunde &amp;k)
{
	if( k.getVname() != NULL &amp;&amp; k.getNname() != NULL )
	{
		of &lt;&lt; k.getKnr() &lt;&lt; &quot;   &quot; &lt;&lt; k.getVname() &lt;&lt; &quot;   &quot; &lt;&lt; k.getNname();
		return of;
	}
	else
	{
		of &lt;&lt; &quot;Fehler&quot;;
		return of;
	}
}
</code></pre>
<p>Das ist mein derzeitiger Code, wie gesagt.. Datei schreiben funktioniert.. lesen funktioniert überhaupt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996047</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:44:26 GMT]]></title><description><![CDATA[<p>Dein Int wird beim Kunden auch nie gesetzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996048</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:49:10 GMT]]></title><description><![CDATA[<p>Stimmt, flüchtigkeitsfehler...</p>
<p>Habe den Setter auch noch hinzugefügt, er setzt jetzt das Int, jedoch eine ganz andere sehr große Zahl und nicht die Zahl die in der Datei steht.</p>
<p>An den Settern liegts aber nicht, die funktionieren sicher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996049</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:49:10 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:50:32 GMT]]></title><description><![CDATA[<p>Da müsste man jetzt eine Menge schauen:<br />
Was gibst du ein?<br />
Liegt noch etwas im Puffer, was bei formatierter Eingabe Probleme bereiten könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996050</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:53:33 GMT]]></title><description><![CDATA[<p>Also danke erstmal für die Hilfe...</p>
<p>Ich bin Anfänger und weiß gerade gar nich was du meinst.<br />
In der Datei steht das &quot;123456789 vorname nachname&quot;</p>
<p>Hier ist mal mein Code.. meiste ist dafür eh irrelevant..<br />
Aber alles funktioniert.. ist schon getestet, bis auf das einlesen eines Kunden aus einer Datei.</p>
<p>****** KUNDE.H ******</p>
<pre><code class="language-cpp">class Kunde
{

	private:
		unsigned int m_knr;
		char *m_nname;
		char *m_vname;

	public:
		Kunde();
		Kunde(const Kunde &amp;k);
		~Kunde();

		void setVname(const char *vname);
		void setNname(const char *nname);
		void setKnr(const unsigned int knr);

		char* getVname() const;
		char* getNname() const;
		int getKnr() const;

		void print();

		void setKunde(const char *vname, const char *nname, const unsigned int knr);

		Kunde&amp; operator=(const Kunde &amp;k);
		friend ostream&amp; operator&lt;&lt;(ostream &amp;cout, const Kunde &amp;k);
		friend ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k);
		friend ofstream&amp; operator&lt;&lt;(ofstream &amp;of, const Kunde &amp;k);

};
</code></pre>
<p>****** KUNDE.CPP ******</p>
<pre><code class="language-cpp">Kunde::Kunde()
{
	m_knr = 0;
	m_vname = NULL;
	m_nname = NULL;
}

Kunde::Kunde(const Kunde &amp;k)
{
	setVname(k.m_vname);
	setNname(k.m_nname);
	setKnr(k.m_knr);
}

Kunde::~Kunde()
{
	m_knr = 0;
	delete [] m_vname;
	delete [] m_nname;
	m_vname = NULL;
	m_nname = NULL;
}

void Kunde::setVname(const char *vname)
{
	if( m_vname != NULL )
	{
		delete [] m_vname;
	}
	m_vname = new char[strlen(vname)+1];
	strcpy(m_vname, vname);
}

void Kunde::setNname(const char *nname)
{
	if( m_nname != NULL )
	{
		delete [] m_nname;
	}
	m_nname = new char[strlen(nname)+1];
	strcpy(m_nname,nname);
}

void Kunde::setKnr(const unsigned int knr)
{
	m_knr = knr;
}

char* Kunde::getVname() const
{
	return m_vname;
}

char* Kunde::getNname() const
{
	return m_nname;
}

int Kunde::getKnr() const
{
	return m_knr;
}

void Kunde::print()
{
	if( m_knr != 0 &amp;&amp; m_vname != NULL &amp;&amp; m_nname != NULL )
	{
		cout &lt;&lt; &quot;\n\nKnr: &quot; &lt;&lt; m_knr &lt;&lt; &quot;\nVname: &quot; &lt;&lt; m_vname &lt;&lt; &quot;\nNname: &quot; &lt;&lt; m_nname &lt;&lt; endl;
	}
	else
	{
		cout &lt;&lt; &quot;Ungueltig&quot; &lt;&lt; endl;
	}
}

void Kunde::setKunde(const char *vname, const char *nname, const unsigned int knr)
{
	setVname(vname);
	setNname(nname);
	setKnr(knr);
}

Kunde&amp; Kunde::operator=(const Kunde &amp;k)
{
	if( this != &amp;k )
	{
		setKnr(k.m_knr);
		setVname(k.m_vname);
		setNname(k.m_nname);
	}
	return *this;
}

ostream&amp; operator&lt;&lt;(ostream &amp;cout, const Kunde &amp;k)
{
	if( k.getVname() != NULL || k.getNname() != NULL )
	{
		cout &lt;&lt; &quot;\n\nKnr: &quot; &lt;&lt; k.getKnr() &lt;&lt; &quot;\nVname: &quot; &lt;&lt; k.getVname() &lt;&lt; &quot;\nNname: &quot; &lt;&lt; k.getNname() &lt;&lt; endl;
		return cout;
	}
	cout &lt;&lt; &quot;Fehler&quot;;
	return cout;
}

ifstream&amp; operator&gt;&gt;(ifstream &amp;ifs, Kunde &amp;k)
{
	char *vorname = new char[500];
	char *nachname = new char[500];
	unsigned int knr;

	ifs &gt;&gt; knr &gt;&gt; vorname &gt;&gt; nachname;

	k.setNname(nachname);
	k.setVname(vorname);
	k.setKnr(knr);

	return ifs;
}

ofstream&amp; operator&lt;&lt;(ofstream &amp;of, const Kunde &amp;k)
{
	if( k.getVname() != NULL &amp;&amp; k.getNname() != NULL )
	{
		of &lt;&lt; k.getKnr() &lt;&lt; &quot;   &quot; &lt;&lt; k.getVname() &lt;&lt; &quot;   &quot; &lt;&lt; k.getNname();
		return of;
	}
	else
	{
		of &lt;&lt; &quot;Fehler&quot;;
		return of;
	}
}
</code></pre>
<p>******** MAIN *********</p>
<pre><code class="language-cpp">int main()
{

	Kunde *k = new Kunde();
	//k-&gt;setKunde(&quot;vorname&quot;, &quot;nachname&quot;, 123456789);

	ifstream ifs(&quot;kunde.txt&quot;);
	ifs &gt;&gt; *k;

	cout &lt;&lt; *k &lt;&lt; endl;

        cin.get();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1996051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996051</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:53:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 20:57:29 GMT]]></title><description><![CDATA[<p>Versuchs mal mit Zeilenumbrüchen in der Datei statt Leerzeichen.<br />
Warum nimmt setKnr einen const unsigned int an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996052</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 20:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:01:36 GMT]]></title><description><![CDATA[<p>Ja weil die Kundennummer immer größer 0 sein soll und dort wird sie ja nicht verändert, also der Parameter wird nicht verändert also kann man den doch dann const setzten ?!</p>
<p>In der Datei steht z.b 111 drin gerade, aber bei der ausgabe steht dann</p>
<p>Knr: -858993460<br />
Vname:<br />
Nname:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996054</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:01:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:07:06 GMT]]></title><description><![CDATA[<p>Ja, aber dann musst du auch eine const-Variable übergeben und die Variable, die du übergibst, ist nicht const und kann auch nicht const sein, da sie vom ifstream verändert wird. Das bringt also überhaupt nichts.</p>
<p>Kannst du ausprobieren, ob es mit einem std::string statt des char* funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996058</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:07:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:09:33 GMT]]></title><description><![CDATA[<p>Ok das mit dem String probiere ich schnell.</p>
<p>Aber die Variable, die ich bei setKnr übergebe, also die, die const ist wird doch nicht verändert ?</p>
<p>Die Membervariable kriegt den Wert von Ihr aber mehr doch auch nicht...?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996059</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:11:57 GMT]]></title><description><![CDATA[<p>Na also, was bringt das, da eine const-Variable als Parameter zu nehmen, wenn du doch eh eine nicht-const-Variable setzt? Fakt ist, dass du einen unsigned int an eine Funktion übergibst, die einen const unsigned int annimmt. Und diese Variable kannst du auch nicht const machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996062</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:11:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:17:03 GMT]]></title><description><![CDATA[<p>Aber dadurch stelle ich doch nur sicher das ich die übergebene Variable nicht ändere - was ich auch nicht tue. So hab ich das immer verstanden.</p>
<p>Beim CopyKonstruktor übergibt man ja auch ein const Objekt.<br />
Set Vor- und Nachname übergebe ich auch ein const char.. und es funktioniert ja auch.</p>
<p>Und mit Strings das klappt.<br />
Aber das muss als char sein... -.- !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996065</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:21:24 GMT]]></title><description><![CDATA[<p>Die übergebene Variable wird kopiert, also ist es dem User völlig &quot;wurscht&quot;, ob du die Kopie änderst oder nicht. const-Referenzen (das, was du bei Copy-Konstruktoren verwendest), sind was anderes. Da hier das Objekt nicht kopiert wird, ist es wichtig, ob du den Parameter änderst oder nicht.</p>
<p>Versuch mal, die char* z.B per memset mit 0 zu initialisieren. Oder du schreibst einfach:<br />
char nachname[500] = {0};</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996069</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 21:22:22 GMT]]></title><description><![CDATA[<p>Achso ok... aber zumindest funktioniert das aber... !</p>
<p>Jedoch das einlesen immernoch nicht... man <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996071</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Fri, 17 Dec 2010 21:22:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Fri, 17 Dec 2010 23:13:55 GMT]]></title><description><![CDATA[<p>Hallo wieder <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="😉"
    /><br />
Also ich kann mir schon rein logisch keine Möglichkeit vorstellen, wie der istream per operator&gt;&gt;-Überladung in ein char-Array einlesen könnte. Der hat ja gar keine Ahnung, wieviel Speicher ihm dort zum Abspeichern zur Verfügung gestellt wird.</p>
<p>Was du machen möchtest möchtest, bzw. aufgrund der Aufgabenstellung machen musst, ist folgendes:</p>
<pre><code class="language-cpp">const unsigned int arrsize = 512;
char inputArray[arrsize];
unsigned int knr;

ifs &gt;&gt; knr;
k.setKnr( knr );

ifs.getline( inputArray, arrsize );
k.setNname( inputArray );

ifs.getline( inputArray, arrsize );
k.setVname( inputArray );
</code></pre>
<p>Wie das jetzt mit den Newlines ist, müsste man gerade nochmal zusammenfriemeln (kenne dein Dateiformat jetzt nicht, man kann getline auch einen Trennbuchstaben ungleich '\n' mitgeben...), aber die grundsätzliche Vorgensweise wird erhalten bleiben.</p>
<p>Viele Grüße,<br />
Deci</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996094</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 17 Dec 2010 23:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Sat, 18 Dec 2010 02:24:56 GMT]]></title><description><![CDATA[<p>Also jetzt nur zum testen, in der Main Methode...</p>
<p>So funktioniert es:</p>
<pre><code class="language-cpp">//char name[30];

	//ifstream ifs(&quot;kunde.txt&quot;);

	////ifs.getline(name,29);
	//ifs &gt;&gt; name;

	//cout &lt;&lt; name;
	//cin.get();
</code></pre>
<p>Das jetzt einfach in eine Funktion packen irgendwie und nicht nur name einlesen, sondern vorname, nachname und noch ein int.</p>
<p>Und ich habe als Membervariablen nicht<br />
char name[xy];<br />
sondern<br />
char *name;<br />
also muss man noch irgendwie mit new alles neu anlegen usw.</p>
<p>Aber ich kriege es nicht hin <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="😃"
    /> habe das vorhin noch geschafft, aber als Funktion nicht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-___-"
      alt="😑"
    /></p>
<p>Wahnsinn... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996115</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Sat, 18 Dec 2010 02:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Sat, 18 Dec 2010 08:56:06 GMT]]></title><description><![CDATA[<p>1. Warum machst du nicht das, was Decimad dir gesagt hat?<br />
2. Du liest doch nicht in Membervariablen ein, sondern in lokale Variablen. Die darfst du auch als char-Array machen, da du in deiner Setter-Funktion ja sowieso den Inhalt kopierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996148</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 18 Dec 2010 08:56:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Sat, 18 Dec 2010 10:02:32 GMT]]></title><description><![CDATA[<p>Ich habe das schon gemacht, aber es hat nicht funktioniert.<br />
Habe ich wohl vergessen zu posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996164</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Sat, 18 Dec 2010 10:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Sat, 18 Dec 2010 10:42:51 GMT]]></title><description><![CDATA[<p>currency schrieb:</p>
<blockquote>
<p>Ich habe das schon gemacht, aber es hat nicht funktioniert.<br />
Habe ich wohl vergessen zu posten.</p>
</blockquote>
<p>Hast du auch Zeilenumbrüche in deine Datei gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996173</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 18 Dec 2010 10:42:51 GMT</pubDate></item><item><title><![CDATA[Reply to Ifstream Operator Überladung on Sat, 18 Dec 2010 11:30:06 GMT]]></title><description><![CDATA[<p>Oh man, das natürlich nicht nicht und schau an...</p>
<p>Meine Datei sieht so aus..</p>
<p>165<br />
aba<br />
adgse</p>
<p>Und er liest die Nummer und den Vornamen &quot;aba&quot; ein. Zum nachnamen kommt er aber nicht.<br />
Ich habe gedebuggt und habe gesehn, beim einlesen steht in beiden werten aba, also nicht nur in Vorname sondern auch in Nachname.</p>
<p>Ich blick jetzt irgendwie überhaupt nicht mehr durch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1996181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1996181</guid><dc:creator><![CDATA[currency]]></dc:creator><pubDate>Sat, 18 Dec 2010 11:30:06 GMT</pubDate></item></channel></rss>