<?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[Klassen aus Dateien in Vektor schreiben]]></title><description><![CDATA[<p>Hi, habe daten aus einem vektor in eine txt-datei geschrieben und möchte jetz aus der datei den selben vektor wieder mit den daten der txt füllen, wie geht das am besten?</p>
<p>der vektor heißt kundenliste</p>
<pre><code>ifstream input (&quot;kundendaten.txt&quot;);
input.read ((char *) &amp;kundenliste, sizeof (kundenliste)); }
</code></pre>
<p>braucht ihr mehr code?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328513/klassen-aus-dateien-in-vektor-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 12:21:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328513.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Oct 2014 19:36:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 19:36:28 GMT]]></title><description><![CDATA[<p>Hi, habe daten aus einem vektor in eine txt-datei geschrieben und möchte jetz aus der datei den selben vektor wieder mit den daten der txt füllen, wie geht das am besten?</p>
<p>der vektor heißt kundenliste</p>
<pre><code>ifstream input (&quot;kundendaten.txt&quot;);
input.read ((char *) &amp;kundenliste, sizeof (kundenliste)); }
</code></pre>
<p>braucht ihr mehr code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422046</guid><dc:creator><![CDATA[efgfdghh]]></dc:creator><pubDate>Mon, 13 Oct 2014 19:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 19:52:10 GMT]]></title><description><![CDATA[<p>Wenn du die Daten analog geschrieben hast, kannst du dir das Einlesen sparen, dann steht in der Datei nur Schrott.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422048</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 13 Oct 2014 19:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 20:00:17 GMT]]></title><description><![CDATA[<pre><code>input.read ((char *) &amp;kundenliste, sizeof (kundenliste)); }
</code></pre>
<p>Wenn kundenliste ein std::vector ist, dann ist das in vielfacher Hinsicht falsch:<br />
-sizeof eines vectors ist die Größe der Verwaltungsdaten, nicht des logischen Inhalts.<br />
-Ebenso ist die Adresse eines Vectors die Größe der Verwaltungsdaten, nicht des Inhalts.<br />
-Entsprechend überschreibt dein Versuch hier irgendwie die Verwaltungsdaten des Vectors, was zu totalem Müll führt.<br />
-Woher soll der Vector eigentlich im Vorhinein wissen, wie groß er sein soll?</p>
<p>Da dieser Versuch so extrem falsch ist, würde es mich nicht wundern, wenn du die Daten bereits falsch in deine Datei geschrieben hast. Zeig mal, wie du die Daten geschrieben hast. Diese Information ist sowieso nötig, wenn wir dir beim Lesen helfen sollen, denn das Serialisieren eines Vectors mit ist nicht trivial und könnte von dir auf vielerlei Weise versucht worden sein. Je nachdem, was du gemacht hast, sieht die Umkehrung dann anders aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422050</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 13 Oct 2014 20:00:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 20:07:48 GMT]]></title><description><![CDATA[<p>Im Prinzip passiert alles genau wie ich es will, auch das in die datei schreiben 100% perfekt für mich und genau beabsichtigt. Wenn ich das Programm schließe sind die Kundendaten natürlich weg. Beim neustarten soll die Option &quot;5&quot; in der main diese kundendaten wieder herstellen, indem der vektor mit den Daten der Datei gefüllt wird.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;

using namespace std;

class verwaltung;

class kunde {
	friend class verwaltung;
private:

	int id;
	int pin;
	int cash;
	string stadt;
	string name;

public:

	static int kundenid;
	kunde () {
		kundenid++;
		id = kundenid;
		cout &lt;&lt; &quot;Namen eingeben:&quot; &lt;&lt; endl;
		cin &gt;&gt; name;
		cout &lt;&lt; &quot;Stadt eingeben:&quot; &lt;&lt; endl;
		cin &gt;&gt; stadt;
		cout &lt;&lt; &quot;Kontostand eingeben:&quot; &lt;&lt; endl;
		cin &gt;&gt; cash;
		cout &lt;&lt; &quot;Kunde mit der ID &quot; &lt;&lt; id &lt;&lt; &quot; wurde erstellt&quot; &lt;&lt; endl;
	}

	void zeigekundendaten () {
		cout &lt;&lt; &quot;Kundenidentifikationsnummer: &quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; name &lt;&lt; endl;
		cout &lt;&lt; &quot;Kontostand: &quot; &lt;&lt; cash &lt;&lt; endl;
		cout &lt;&lt; &quot;Wohnort: &quot; &lt;&lt; stadt &lt;&lt; endl;
	}

	void schreibedaten (ostream* x) {
		cout &lt;&lt;&quot;Kundendaten von Kunden ID: &quot; &lt;&lt; id &lt;&lt; &quot; werden gesichert.&quot; &lt;&lt; endl;
		*x &lt;&lt; &quot;Kundenidentifikationsnummer: &quot; &lt;&lt; endl;
		*x &lt;&lt; &quot;Name: &quot; &lt;&lt; name &lt;&lt; endl;
		*x &lt;&lt; &quot;Wohnort: &quot; &lt;&lt; stadt &lt;&lt; endl;		
		*x &lt;&lt; &quot;Kontostand: &quot; &lt;&lt; cash &lt;&lt; endl &lt;&lt; endl;
	}
};

class verwaltung {
private:
	vector&lt;kunde&gt;kundenliste;

public:
	void neuerkunde () {
		kunde neuerkunde;
		kundenliste.push_back (neuerkunde);
	}

	void size (){
			cout &lt;&lt; kundenliste.size();
	}

	void suchekunde (string name) {
		int zaehler = 0;
		vector&lt;kunde&gt;:: iterator i;
		for (i=kundenliste.begin();i!=kundenliste.end();i++) {
			if (i-&gt;name==name) {
				cout &lt;&lt; &quot;gefunden: &quot;;
				i-&gt;zeigekundendaten();
				zaehler++;
			}
			if (zaehler==0) 
				cout &lt;&lt; &quot;Es wurden keine Eintraege gefunden&quot; &lt;&lt; endl;
		}
	}

	void kundendatenspeichern () {
		vector&lt;kunde&gt;:: iterator i;
			ofstream output (&quot;kundendaten.txt&quot;);
		for (i=kundenliste.begin();i!=kundenliste.end();i++) {
			i-&gt;schreibedaten(&amp;output);
		}
		output.close();
	}

};

int kunde::kundenid;

int main() {

	kunde::kundenid = 0;
	char option;
	string name;

	verwaltung boss;

	do {
	cout &lt;&lt; &quot;  Guten Tag, Boss.&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(1) Neuen Kunden anlegen&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(2) Kunden suchen&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(3) Kundenanzahl anzeigen&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(4) Kunden speichern&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(5) Kunden laden&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(b) Programm beenden&quot; &lt;&lt; endl;
	cin &gt;&gt; option;

			 if	(option=='1')
	boss.neuerkunde();
		else if (option=='2') {
	cout &lt;&lt; &quot;Namen eingeben: &quot;;
	cin &gt;&gt; name;
	boss.suchekunde(name);    }
		else if (option=='3')
	boss.size();
		else if (option=='4') 
	boss.kundendatenspeichern();
		else if (option=='5')  {
	ifstream input (&quot;kundendaten.txt&quot;, ios::binary);
	input.read ((char *) kundenliste, sizeof (kundenliste)); }
			else 
	cout &lt;&lt; &quot;Ungueltige eingabe&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;
	} while (option != 'b' );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2422052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422052</guid><dc:creator><![CDATA[dffsdsdf]]></dc:creator><pubDate>Mon, 13 Oct 2014 20:07:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 20:10:41 GMT]]></title><description><![CDATA[<p>also was ihr sucht ist glaube ich methode &quot;kundendatenspeichern&quot; von klasse verwaltung und methode &quot;schreibedaten&quot; von klasse kunde</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422053</guid><dc:creator><![CDATA[redfgdfg]]></dc:creator><pubDate>Mon, 13 Oct 2014 20:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 20:37:21 GMT]]></title><description><![CDATA[<p>Hast du den Code selbst geschrieben? Die beiden Teile passen überhaupt nicht zusammen. Das Rausschreiben ist extrem formatiert, es werden ja sogar redundante Beschreibungen der Kategorie bei jedem Datensatz mit rausgeschrieben. Aber dein Leseversuch ist ausgelegt auf unformatierte Rohdaten. Eines von beiden hast du nicht selber gemacht.</p>
<p>Was du brauchst ist eine passende Lesefunktion für deine Kundendaten. Ungefähr das, was du derzeit im Konstruktor machst<sup>*</sup>, bloß dass es in der Lage ist, die von dir ausgegebenen Daten zu lesen (also insbesondere muss es mit deinen Kategorien zurecht kommen). Dann liest du einfach umgekehrt ein, wie du geschrieben hast. Ganz ohne read oder binary.</p>
<p>Außerdem solltest du dir dringend mal ansehen, was Referenzen sind.</p>
<p><sup>*</sup>: Wieso führt der Konstruktor einer Klasse eine interaktive Nutzerbefragung durch? Das hat da vom Design her nichts zu suchen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422054</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 13 Oct 2014 20:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 21:10:21 GMT]]></title><description><![CDATA[<p>ich würd jetzt sagen zeiger referenzen...ist doch alles call by reference was solls, aber dann gibts siche verbale ohrfeigen von jeder seite. Muss mir nochmal die Unterschiede geben. Eigentlich sind zeiger (dachte ich zumindest) die große stärke von c++ aber jeder rät immer zur referenz.</p>
<p>ist richtig, der &quot;roh-datencode&quot; ist ausm buch nachdem meine versuche es nicht gebracht haben.</p>
<p>ich verstehe was du meisnt aber nicht wie man es umsetzen könnte, da ich ja wahrscheinlich in c++ definieren muss, welche passagen aus der txt, zu welcher membervariablen gehören soll. kannst du mir bitte codefragmente schreiben auf die ich wahrscheinlich nicht kommen werde oder die mich auf die Idee bringen, wie man es umsetzen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422056</guid><dc:creator><![CDATA[fghfgh]]></dc:creator><pubDate>Mon, 13 Oct 2014 21:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 21:31:27 GMT]]></title><description><![CDATA[<p>fghfgh schrieb:</p>
<blockquote>
<p>ich würd jetzt sagen zeiger referenzen...ist doch alles call by reference was solls, aber dann gibts siche verbale ohrfeigen von jeder seite. Muss mir nochmal die Unterschiede geben. Eigentlich sind zeiger (dachte ich zumindest) die große stärke von c++ aber jeder rät immer zur referenz.</p>
</blockquote>
<p>Totaler Unsinn, wie kommst du da drauf?</p>
<blockquote>
<p>ich verstehe was du meisnt aber nicht wie man es umsetzen könnte, da ich ja wahrscheinlich in c++ definieren muss, welche passagen aus der txt, zu welcher membervariablen gehören soll. kannst du mir bitte codefragmente schreiben auf die ich wahrscheinlich nicht kommen werde oder die mich auf die Idee bringen, wie man es umsetzen könnte?</p>
</blockquote>
<p>Die erste Frage ist: Soll das Ausgabeformat so bleiben?<br />
Derzeit gibst du so etwas aus:</p>
<pre><code>Kundenidentifikationsnummer: 21234
Name: Max Mustermann
Wohnort: Hinterkuckucksheim
Kontostand: 3324535

[nächster Datensatz]
</code></pre>
<p>Kann man so machen. Man könnte auch:</p>
<pre><code>21234
Max Mustermann
Hinterkuckucksheim
3324535

[nächster Datensatz]
</code></pre>
<p>Oder</p>
<pre><code>21234
Max Mustermann
Hinterkuckucksheim
3324535
[nächster Datensatz]
</code></pre>
<p>oder</p>
<pre><code>21234;Max Mustermann;Hinterkuckucksheim;3324535
[nächster Datensatz]
</code></pre>
<p>oder Varianten davon. Vorteile: Leichter zu lesen (für einen Computer); deutlich kleinere Datei. Nachteile: Weniger flexibel, insbesondere was spätere Erweiterungen angeht; schlechter für Menschen lesbar.<br />
Wenn du schon weißt, dass niemals Erweiterungen kommen werden, dann könnte man so ein Format zum Schreiben benutzen. Wenn du mit Erweiterungen rechnest, könnte man auch dein jetziges Format noch stärker darauf auslegen, damit zurecht zu kommen (wobei es derzeit schon ganz ok ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422057</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 13 Oct 2014 21:31:27 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen aus Dateien in Vektor schreiben on Mon, 13 Oct 2014 22:54:35 GMT]]></title><description><![CDATA[<p>egal mit zeiger und referenz, lese ich mir nochmal durch.</p>
<p>sagee ich mal ich möchte mein ausgabeformat nicht ändern, wie mache ich meinem programm begreifbar, welche zeilen der txt datei es verwenden soll, um membervariablen zu füllen. zB zuerst soll der name einer instanz gefüllt werden. in der textdatei ist der name aber in zeile 2. Ich kenne mich da überhaupt nicht aus ich google das mal. aber wenn jemand ein gutes tut kennt bitte trotzdem posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2422060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2422060</guid><dc:creator><![CDATA[adhdhd]]></dc:creator><pubDate>Mon, 13 Oct 2014 22:54:35 GMT</pubDate></item></channel></rss>