<?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[Daten aus Textdokument auslesen und in vector schreiben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte Informationen aus einem Textdokument (inFile.txt) einlesen und diese in einem Vector speichern. Ich programmiere in Visual C++ 2008!</p>
<p>Ich finde sehr viele Ansätze zu diesem Thema aber ich möchte dies umsetzen mit Hilfe von Streams und es so übersichtlich und einfach halten wie nur möglich.</p>
<blockquote>
<p>Aufbau der inFile.txt</p>
<p>Andreas Müller (string oder char)<br />
95 (int)<br />
1 (int)</p>
<p>Fussball Verein HSV<br />
8763<br />
34</p>
<p>Kegelclub SIXT<br />
1264<br />
15</p>
</blockquote>
<p>Ich bin also offen für jegliche Tipps und Vorschläge!</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/275708/daten-aus-textdokument-auslesen-und-in-vector-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 10:18:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/275708.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Oct 2010 18:32:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 18:32:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte Informationen aus einem Textdokument (inFile.txt) einlesen und diese in einem Vector speichern. Ich programmiere in Visual C++ 2008!</p>
<p>Ich finde sehr viele Ansätze zu diesem Thema aber ich möchte dies umsetzen mit Hilfe von Streams und es so übersichtlich und einfach halten wie nur möglich.</p>
<blockquote>
<p>Aufbau der inFile.txt</p>
<p>Andreas Müller (string oder char)<br />
95 (int)<br />
1 (int)</p>
<p>Fussball Verein HSV<br />
8763<br />
34</p>
<p>Kegelclub SIXT<br />
1264<br />
15</p>
</blockquote>
<p>Ich bin also offen für jegliche Tipps und Vorschläge!</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967674</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Tue, 19 Oct 2010 18:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 18:49:50 GMT]]></title><description><![CDATA[<p>jede Zeile in einen stringstream schreiben und von dort mit<br />
operator&gt;&gt; in den entsprechenden Datentyp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967691</guid><dc:creator><![CDATA[Panke]]></dc:creator><pubDate>Tue, 19 Oct 2010 18:49:50 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 19:03:57 GMT]]></title><description><![CDATA[<p>für die erste zeile bietet sich std::getline (aus dem header string - nicht die andere hässliche überladung mit dem char-gefrickel^^)</p>
<p>die beiden nächsten zeilen gehen einfach mit dem op&gt;&gt;(istream&amp;, int) einzulesen.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967700</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 19 Oct 2010 19:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 19:19:56 GMT]]></title><description><![CDATA[<p>Ich nehme mal an, dass die Zahlen irgendwie zu dem String gehören? Dann brauchen wir erstmal eine Klasse dafür. Da ich in diesem Beispiel faul bin, nehme ich ein struct, ohne mich um Kapselung zu kümmern:</p>
<pre><code class="language-cpp">struct Datensatz
{
 string Name;
 int ErsterInt;
 int ZweiterInt;
};
</code></pre>
<p>Diesem verpassen wir auch gleich noch einen Leseoperator. Weil Mischen von zeilenweisem Lesen und formatiertem Lesen nie gut kommt, machen wir alles mit getline und wandeln erst danach in int um:</p>
<pre><code class="language-cpp">bool strtoi(string in, int &amp;out)
{
  stringstream parser;
  parser &lt;&lt; in;
  parser &gt;&gt; out;
  return parser;
}

istream&amp; operator&gt;&gt;(istream&amp;in, Datensatz&amp; out)
{
  string name;
  while (getline(in,name) &amp;&amp; name.size()==0); // Leere Zeilen überspringen
  string erster, zweiter;
  getline(in, erster);
  getline(in, zweiter);
  if (in) // Nur etwas tun, wenn Lesen erfolgreich war
    {
      int ersterint, zweiterint;
      if (strtoi(erster,ersterint)
          &amp;&amp; strtoi(zweiter,zweiterint)) // Und auch tatsächlich Zahlen gelesen wurden
        {
          out.Name=name;
          out.ErsterInt=ersterint;
          out.ZweiterInt=zweiterint;
        }
      else in.setstate(ios::failbit); // Ansonsten ist was schiefgegangen
    }
  return in;
}
</code></pre>
<p>Und der Form halber auch eine Ausgabe:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream&amp;out, Datensatz&amp; in)
{
  out&lt;&lt;&quot;Name: \t&quot;&lt;&lt;in.Name&lt;&lt;&quot;\nZahl1: \t&quot;&lt;&lt;in.ErsterInt&lt;&lt;&quot;\nZahl2: \t&quot;&lt;&lt;in.ZweiterInt;
  return out;
}
</code></pre>
<p>Und dann sollte das auch schon flutschen:</p>
<pre><code class="language-cpp">int main () 
{
  vector&lt;Datensatz&gt; daten;
  { // Einlesen
    ifstream file(&quot;test.txt&quot;);
    Datensatz temp;
    while(file&gt;&gt;buffer) daten.push_back(temp);
  }

  // Testausgabe:
  for (int i; i&lt;daten.size(); ++i) cout&lt;&lt;daten[i]&lt;&lt;endl;
}
</code></pre>
<p>Und das hat jetzt viel zu lange gedauert, mal sehen, wie viele hundert Antworten du mittlerweile bekommen hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967715</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 19 Oct 2010 19:19:56 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 20:26:45 GMT]]></title><description><![CDATA[<p>Hallo PauleJS,</p>
<p>willkommen im C++-Forum.</p>
<p>Wenn Du das in einen vector einlesen möchtest, solltest Du zunächst eine Klasse/Struktur implementieren. Nimm dabei keine Rücksicht darauf, wie die Daten in der Datei stehen, sondern nur darauf, wie Du später am besten mit der Klasse/Struktur arbeiten kannst. Da ich nicht weiß, was das werden soll, nenne ich diese Klasse/Struktur mal 'Foo'.</p>
<p>Anschließend verpasst Du Foo einen sogenannten Streaming-Iterator, der es möglich macht, ein Foo Objekt aus einem Stream zu lesen. Idealerweise als friend-Funktion, da auch private Member gefüllt werden müssen. Folgende Anwendung soll dann möglich sein:</p>
<pre><code class="language-cpp">ifstream datei( &quot;inFile.txt&quot; );
    Foo einFoo;
    if( datei &gt;&gt; einFoo ) {
         // einFoo korrekt gelesen
</code></pre>
<p>Jetzt brauchst Du den vector, der Objekte vom Typ Foo enthalten soll, nur noch aus der Datei füllen, wobei ich hier den <a href="http://www.cplusplus.com/reference/std/iterator/istream_iterator/" rel="nofollow">istream_iterator</a>&lt;&gt; verwende. Alles zusammen sieht das z.B. so aus:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;iterator&gt; // istream_iterator
#include &lt;vector&gt;   

class Foo
{
public:
    Foo()
        : m_name()
        , m_i1()
        , m_i2()
    {}
    // .. hier bitte alle Methoden hinzufügen, die noch notwendig sind

    // -- Streaming Operator, der ein Foo-Objekt vom std::istream liest
    friend std::istream&amp; operator&gt;&gt;( std::istream&amp; in, Foo&amp; foo )
    {
        return getline( in &gt;&gt; std::ws, foo.m_name ) &gt;&gt; foo.m_i1 &gt;&gt; foo.m_i2;
    }
private:
    std::string m_name;
    int m_i1;
    int m_i2;
};

int main()
{
    using namespace std;

    ifstream datei( &quot;inFile.txt&quot; );
    if( !datei.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen der Datei&quot; &lt;&lt; endl;
        return -1;
    }
    vector&lt; Foo &gt; foos( (istream_iterator&lt; Foo &gt;( datei )), istream_iterator&lt; Foo &gt;() ); // einfach so einlesen
    if( !datei.eof() ) // falls das Ende der Datei nicht erreicht wurde, so wurde vorher wegen Fehler abgebrochen
    {
        cerr &lt;&lt; &quot;Fehler beim Lesen&quot; &lt;&lt; endl;
        return -1;
    }

    // 'foos' verwenden
    cout &lt;&lt; foos.size() &lt;&lt; &quot; Eintraege gelesen&quot; &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>den Namen der Klasse Foo und die Namen der Member solltest Du äquivalent zu Ihrer Bedeutung ändern.<br />
Falls irgendwas unklar ist, bitte nachfragen.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Weil Mischen von zeilenweisem Lesen und formatiertem Lesen nie gut kommt, machen wir alles mit getline ..</p>
</blockquote>
<p>wieso das denn?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1967752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967752</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 19 Oct 2010 20:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 19 Oct 2010 21:33:27 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Weil Mischen von zeilenweisem Lesen und formatiertem Lesen nie gut kommt, machen wir alles mit getline ..</p>
</blockquote>
<p>wieso das denn?</p>
</blockquote>
<p>Das führt dann immer zu mit Whitespace gefüllten Zeilen. Genau das war nämlich mein Problem, weshalb ich das so gemacht habe. Gib mir mal eine vernünftige Lösung, wie man bei diesem Beispieldatensatz mit einer Mischung von getline und &gt;&gt; vernünftig einliest. Ich werde dir mal das Leerzeichen hervorheben, das ein menschlicher Dateiersteller dort versehentlich hinterlassen hat:</p>
<pre><code>Andreas Müller
95
1_    &lt;-- Hier eine nette Problemstelle

Fussball Verein HSV
8763
34
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1967773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1967773</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 19 Oct 2010 21:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Wed, 20 Oct 2010 19:01:51 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Weil Mischen von zeilenweisem Lesen und formatiertem Lesen nie gut kommt, machen wir alles mit getline ..</p>
</blockquote>
<p>wieso das denn?</p>
</blockquote>
<p>Das führt dann immer zu mit Whitespace gefüllten Zeilen.</p>
</blockquote>
<p>.. ein Grund mehr, stets formatiert zu lesen, solange es möglich ist. getline liest dagegen unformatiert.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Genau das war nämlich mein Problem, weshalb ich das so gemacht habe. Gib mir mal eine vernünftige Lösung, wie man bei diesem Beispieldatensatz mit einer Mischung von getline und &gt;&gt; vernünftig einliest. Ich werde dir mal das Leerzeichen hervorheben, das ein menschlicher Dateiersteller dort versehentlich hinterlassen hat:</p>
<pre><code>Andreas Müller
95
1_    &lt;-- Hier eine nette Problemstelle

Fussball Verein HSV
8763
34
</code></pre>
</blockquote>
<p>Die Lösung siehst Du bereits in meinem <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1967752.html#1967752" rel="nofollow">vorher geposteten Code</a>. Da ist es ziemlich egal, wie viel Leerzeichen hinter den Zahlen stehen, oder wie viel Leerzeilen die einzelnen Datensätzen trennen. Der Trick liegt in dem</p>
<pre><code class="language-cpp">in &gt;&gt; std::ws
</code></pre>
<p>in Zeile 20. Mit dem <a href="http://www.cplusplus.com/reference/iostream/manipulators/ws/" rel="nofollow">std::ws</a> wird alles an <a href="http://de.wikipedia.org/wiki/Leerraum" rel="nofollow">White Space Zeichen</a> überlesen, was vor dem ersten Text des Datensatzes steht.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1968178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1968178</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 20 Oct 2010 19:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Wed, 20 Oct 2010 20:19:16 GMT]]></title><description><![CDATA[<p><strong>Vielen Dank euch allen für die ganzen Tipps und Ratschläge!!</strong></p>
<p>Einen besonderen Dank muss ich <strong>Werner Salomon</strong> geben! Ich möchte deinen Code nun eigentlich gerne in mein bestehendes Programm einbinden! Dies funktioniert leider nicht wie gewünscht.</p>
<p>Zum Verständnis hier mal den Code und die Beschreibung</p>
<p><strong>Beschreibung:</strong><br />
Eine Reiseagentur organisiert Flüge in einem Flugzeug das maximal 10.000 Kg (Passagiere + Gepäck) aufnehmen kann. Die Reservierung beinhaltet für jeden Passagier drei Eingabewerte:</p>
<p>1. Eine Identifikationsnummer für den Passagier (5 stellige Zufallszahl)<br />
2. Das Gesamtgewicht des Passagiere + Gepäck<br />
3. Einen Gruppecode der angibt, ob der Passagier individuell reist, oder innerhalb einer Gruppen (0 bedeutet eine individuelle, &gt;0 bedeutet in Gruppen)</p>
<p><strong>Ablauf:</strong></p>
<p>1. Die Passagier-Daten in einen Vector einlesen (inFile.txt)<br />
2. Alle Passagiere die insgesamt nicht das maximal Gewicht von 10.000 Kg berschreiten werden in eine Ausgabedatei outFile.txt ausgegeben.<br />
3. Die Daten der Passagiere, die nicht beitreten können sollen in die Datei Annulierungen.txt geschrieben werden</p>
<pre><code class="language-cpp">#include &quot;Vliegreizen.h&quot;
#include &quot;iostream&quot;
using namespace std;
int main()
{
	Vliegreizen v;

	cout &lt;&lt; &quot;HD13 - Vliegreizen&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;		

	v.loadData(); // daten einlesen aus der inFile.txt
	//v.reserveringen(aantal); 
	//v.toFile(&quot;uitvoerFile.txt&quot;);

	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;iterator&gt; // istream_iterator
#include &quot;Reiziger.h&quot;

using namespace std;

class Vliegreizen
{
private:
	int gewichtTotaal;
	int groepsKode; // zweite int zahl in der inFile.txt
	int gewicht; // erste int zahl in der inFile.txt
	int aantal; // anzahlt der passagiere
	std::string name; // name in der inFile.txt
	vector&lt;Reiziger&gt; r; // dieser vector soll genutzt werden

public:
	Vliegreizen();
	void loadData();
	void addReiziger(); // daten in vector hinzufügen
	void toFile(); // neue daten sollen in 
	void annuleren(); // restliche passagiere in Annulierungen.txt schreiben

};
</code></pre>
<pre><code class="language-cpp">#include &quot;Vliegreizen.h&quot;

using namespace std;

Vliegreizen::Vliegreizen(void){
	int gewichtTotaal = 0;
	int gewicht = 0;
	int aantal = 0;
}

void Vliegreizen::loadData(){  

    ifstream file( &quot;inFile.txt&quot; );
    if( !file.is_open() )
    {
        cerr &lt;&lt; &quot;Cannot open file&quot; &lt;&lt; endl;
        return -1;
    }
    vector&lt; Vliegreizen &gt; v( (istream_iterator&lt; Foo &gt;( datei )), istream_iterator&lt; Foo &gt;() ); // einfach so einlesen
    if( !file.eof() ) // falls das Ende der Datei nicht erreicht wurde, so wurde vorher wegen Fehler abgebrochen
    {
        cerr &lt;&lt; &quot;Error reading&quot; &lt;&lt; endl;
        return -1;
    }

    // 'foos' verwenden
    cout &lt;&lt; foos.size() &lt;&lt; &quot; readed entries&quot; &lt;&lt; endl;
	vector &lt;Foo&gt;::iterator pos;
}
</code></pre>
<pre><code class="language-cpp">#include &quot;Reiziger.h&quot;
using namespace std;

Reiziger::Reiziger (){
	int id = 0;
	int gewicht = 0;
}

int Reiziger::random(){
		 int min=10000;
		 int max=99999;
		 srand((unsigned int)time(0)); 
		 id =rand()%(max-min+1)+min; //Berechnung der Zufallszahl im gewünschten Bereich
		 return id;
	}

string Reiziger::toString()	{	

	}
</code></pre>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;string&gt;
#include &lt;cstdlib&gt;
#include &lt;ctime&gt;

using namespace std;

class Reiziger
{
private:
	int id; 
	int gewicht;

public:
	Reiziger();
	int random();
	string toString();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1968227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1968227</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Wed, 20 Oct 2010 20:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Wed, 20 Oct 2010 20:43:44 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<p>... Ich möchte deinen Code nun eigentlich gerne in mein bestehendes Programm einbinden! Dies funktioniert leider nicht wie gewünscht.</p>
</blockquote>
<p>Hallo PauleJS,</p>
<p>man kann es gar nicht oft genug schreiben: 'funktioniert nicht' ist nun mal keine ausreichende Fehlerbeschreibung!</p>
<p>Trotzdem ein paar Bemerkungen zu der Methode Vliegreizen::loadData().<br />
- Die Variable ifstream wird in Zeile 13 angelegt; in Zeile 19 versuchst Du dann aber aus der Variable 'datei' zu lesen. Das sollte einen Compiler-Fehler geben. In Zeile 19 muss statt 'datei' 'file' stehen.<br />
- Die Methode liefert als Return-Typ void, aber es steht zweimal return -1; (also Return-Typ int) in der Datei. Auch das geht nicht und sollte zu einem Compile-Fehler führen.<br />
- Die Variable 'v' (Zeile 19) ist lokal und geht am Scope-Ende der Methode verloren. Damit ist das Einlesen der Datensätze obsolet<br />
- Zeile 28 ist sinnlos.</p>
<p>Versuche erst einmal diese Compile-Fehler zu beseitigen und teile uns dann mit, was genau dann vielleicht immer noch nicht geht. Und mache 'v' zu einem Member Deiner Klasse.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1968240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1968240</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 20 Oct 2010 20:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Thu, 21 Oct 2010 17:51:11 GMT]]></title><description><![CDATA[<p>ich habe es nun so verstanden das folgende zeile alle daten aus der datei in den vector einliesst:</p>
<pre><code class="language-cpp">vector&lt;Vliegreizen&gt; v( (istream_iterator&lt; Vliegreizen &gt;( file )), istream_iterator&lt; Vliegreizen &gt;() );
</code></pre>
<p>ich möchte mir jetzt einfach ausgaben lassen was in dem vector ist</p>
<pre><code class="language-cpp">vector &lt;Vliegreizen&gt;::iterator pos;
	for (pos = v.begin(); pos != v.end(); ++pos){
		cout &lt;&lt; *pos &lt;&lt; endl;
	}
</code></pre>
<p>bekomme hier aber immer folgende fehlermeldung:<br />
error C2679: binary '&lt;&lt;' : no operator found which takes a right-hand operand of type 'Vliegreizen' (or there is no acceptable conversion)</p>
<p>ich verstehe nicht wo der fehler ist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1968661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1968661</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Thu, 21 Oct 2010 17:51:11 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Thu, 21 Oct 2010 18:01:56 GMT]]></title><description><![CDATA[<p>Na, steht doch da: Es wird kein Operator namens &lt;&lt; gefunden, der auf der rechten Seite ein Objekt vom Typ Vliegreizen nimmt. Denk dir doch mal, was bei folgendem Code passieren würde:</p>
<pre><code class="language-cpp">Vliegreizen foo;
cout &lt;&lt; foo;
</code></pre>
<p>Würde das funktionieren? Nein, das würdest du auch gar nicht erst versuchen. Was du nämlich vorher brauchst, ist eine entsprechende Überladung für den Operator &lt;&lt;. Dies kann zum Beispiel so aussehen:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream &amp;out, const Vliegreizen&amp; foo)
{
  // Hier gibst du foo in out aus, so wie du es dir vorstellst

 return out;
}
</code></pre>
<p>Dann funktioniert das auch. Achte dabei auf die Sichtbarkeit der Member von foo, denn es handelt sich bei dem Operator um eine freie Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1968665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1968665</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 21 Oct 2010 18:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Sun, 24 Oct 2010 17:26:41 GMT]]></title><description><![CDATA[<p>gibt es niemanden der mir weiter helfen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970060</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Sun, 24 Oct 2010 17:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Sun, 24 Oct 2010 18:19:45 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<p>gibt es niemanden der mir weiter helfen kann?</p>
</blockquote>
<p>Du hast doch eine Erklärung des Problems und einen Lösungsansatz erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970092</guid><dc:creator><![CDATA[mmmmm]]></dc:creator><pubDate>Sun, 24 Oct 2010 18:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Sun, 24 Oct 2010 18:21:24 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<p>gibt es niemanden der mir weiter helfen kann?</p>
</blockquote>
<p>Hallo PaulJS,<br />
in der Antwort von SeppJ steht doch schon die Lösung für Dein Problem. Wenn Du was nicht verstehst, so musst Du schon konkreter fragen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970093</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 24 Oct 2010 18:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Sun, 24 Oct 2010 18:45:51 GMT]]></title><description><![CDATA[<p>tut mir leid wegen dem letzten kommentar, habe immer nur die erste seite gesehen!</p>
<p>ich glaube ich habe nun langsam verstanden wie es funktioniert!<br />
wollte das nun noch mit einer toString methode lösen, wo die ausgabe definiert wird.</p>
<p>ist dieser ansatz so richtig? oder gibt es einfachere wege hierbei zum ziel zu kommen?</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;(std::ostream&amp; os, const Vliegreizen&amp; v){
	os &lt;&lt; v.toString();
	return os;
	}
</code></pre>
<p>ausserem bekomme ich hier noch die fehlermeldung:<br />
error C2601: 'operator &lt;&lt;' : local function definitions are illegal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970102</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Sun, 24 Oct 2010 18:45:51 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Sun, 24 Oct 2010 19:00:45 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<p>ist dieser ansatz so richtig? oder gibt es einfachere wege hierbei zum ziel zu kommen?</p>
</blockquote>
<p>Das ist eine gute Idee und auch ein sehr häufig benutzter Ansatz. Die andere übliche Methode ist es, den Operator zum friend der Klasse zu machen.</p>
<blockquote>
<p>ausserem bekomme ich hier noch die fehlermeldung:<br />
error C2601: 'operator &lt;&lt;' : local function definitions are illegal</p>
</blockquote>
<p>Das geht aus dem Code nicht hervor, woran das liegt. Es klingt danach, als würdest du versuchen den Operator innerhalb einer anderen Funktion zu definieren. Überprüf mal, ob alle Klammern in deinem Programm richtig gesetzt sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970109</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Oct 2010 19:00:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Mon, 01 Nov 2010 16:03:09 GMT]]></title><description><![CDATA[<p>da mein code total unstrukturiert war, habe ich einfach neu angefangen!</p>
<p>habe aber nun am anfang schon direkt tolle fehlermeldungen bekommen:</p>
<p>error C2512: 'std::vector' : no appropriate default constructor available<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier</p>
<p>header vliegreizen</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; // open file
#include &lt;iostream&gt;
#include &lt;vector&gt; 

class Vliegreizen{
private:
	int gewicht;
	int gewichtTotaal;
	int id;
	int groepsKode;
	std::vector&lt;string&gt; data;

public:
	Vliegreizen();
	void loadAanvragen();
	void verwerkAanvragen();
	void reserveringen();
	void annuleringen();
};
</code></pre>
<pre><code class="language-cpp">#include &quot;Vliegreizen.h&quot;
using namespace std;

Vliegreizen::Vliegreizen(){
	int gewicht = 0;
	int gewichtTotaal = 0;
}

void Vliegreizen::loadAanvragen(){
	ifstream readFile( &quot;Aanvragen.txt&quot; );
    if( !readFile.is_open() )
    {
        cout &lt;&lt; &quot;Cannot open file&quot; &lt;&lt; endl;
    }
	else
	{
		cout &lt;&lt; &quot;Open file&quot; &lt;&lt; endl;
	}

	char zeile [30]; // max 30 characters
	while(readFile.getline (zeile, 500)){
		//data.push_back(zeile);
	}

	readFile.close();
}
</code></pre>
<p>ich verstehe nicht was ich hier falsch gemacht haben soll! in meinem buch kann man einen vector so benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973634</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Mon, 01 Nov 2010 16:15:45 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<p>error C2512: 'std::vector' : no appropriate default constructor available<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier</p>
</blockquote>
<p>Schau dir einmal diese 3 Fehlermeldungen an. C2065 bedeutet : &quot;Der angegebene Bezeichner wurde nicht deklariert&quot;.<br />
Du includierst zwar <code>&lt;vector&gt;</code> , jedoch nicht <code>&lt;string&gt;</code> . Da du außerdem vernünftigerweise kein <code>using namespace std;</code> in die Header-Datei geschrieben hast, sollte es anschließend auch <code>std::vector&lt;std::string&gt; data;</code> heißen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973645</guid><dc:creator><![CDATA[Vicious Falcon]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Mon, 01 Nov 2010 16:25:30 GMT]]></title><description><![CDATA[<p>Vicious Falcon schrieb:</p>
<blockquote>
<p>PauleJS schrieb:</p>
<blockquote>
<p>error C2512: 'std::vector' : no appropriate default constructor available<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier<br />
vliegreizen.h(11) : error C2065: 'string' : undeclared identifier</p>
</blockquote>
<p>Schau dir einmal diese 3 Fehlermeldungen an. C2065 bedeutet : &quot;Der angegebene Bezeichner wurde nicht deklariert&quot;.<br />
Du includierst zwar <code>&lt;vector&gt;</code> , jedoch nicht <code>&lt;string&gt;</code> . Da du außerdem vernünftigerweise kein <code>using namespace std;</code> in die Header-Datei geschrieben hast, sollte es anschließend auch <code>std::vector&lt;std::string&gt; data;</code> heißen.</p>
</blockquote>
<p>o man ich brauche noch viel übgung in c++^^ hast total recht gehabt und nun arbeitet es fehlerfrei</p>
<p>besten dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1973647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1973647</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Mon, 01 Nov 2010 16:25:30 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 02 Nov 2010 10:28:40 GMT]]></title><description><![CDATA[<p>will jetzt ab zeile 1 in einem abstand von jeweils 5 zeilen immer eine neue zeile mit einem int wert hinzufügen! bekomme aber immer fehlermeldungen, oder die schleife ist unendlich lang.</p>
<p>lese also folgende datei ein:</p>
<pre><code>Andreas Müller
95
1

Fussball Verein HSV
8763
34

Kegelclub SIXT
1264
15
</code></pre>
<p><strong>dazu dieser code</strong></p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

using namespace std;

void main (void){
	string test = &quot;test&quot;;
	vector&lt;string&gt; data;

	ifstream readFile( &quot;inFile.txt&quot; );

	char zeile [30]; // max 30 characters
	while(readFile.getline (zeile, 500)){
		data.push_back(zeile);
	}

	vector&lt;string&gt;::iterator pos;
	data.at(1) = data.push_back(test); //beginnend von zeile 1 soll in abstand von 5 zeilen eine neue zeile eingefügt werden

	for (pos = data.begin(); pos != data.end(); ++pos){
		cout &lt;&lt; *pos &lt;&lt; endl;
	}

	readFile.close();
}
</code></pre>
<p>dieses beispiel soll jetzt erstmal nur einen string einfügen. später soll aber eine int eingefügt werden, denke dieser muss dann erst in einen string konvertiert, oder nicht?</p>
<p>besten dank im voraus für die hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1974003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1974003</guid><dc:creator><![CDATA[PauleJS]]></dc:creator><pubDate>Tue, 02 Nov 2010 10:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus Textdokument auslesen und in vector schreiben on Tue, 02 Nov 2010 11:24:32 GMT]]></title><description><![CDATA[<p>PauleJS schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// ...
	char zeile [30]; // max 30 characters
	while(readFile.getline (zeile, 500)){
</code></pre>
</blockquote>
<p>Hallo PauleJs,</p>
<p>wieso dieser Code - wo lernt man sowas? Niemand hier hat Dir geraten, char-Arrays zu benutzen. Man macht nur Fehler - so wie Du in diesem Fall.</p>
<p>Wir haben hier gearde einen ellenlangen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-276260.html" rel="nofollow">Thread zum Thema string versus char[]</a>.</p>
<p>ratlos <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1974023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1974023</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 02 Nov 2010 11:24:32 GMT</pubDate></item></channel></rss>