<?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[[GELÖST] Problem mit Daten ausgeben aus Vektor]]></title><description><![CDATA[<p>Hey Leute, ich habe ein Problem und kann einfach den Fehler nicht finden=(<br />
Und zwar habe ich eine Datei in der Adressen stehen, ich möchte die Daten auslesen, im Vektor speichern, sortieren und anschließend sortiert ausgeben.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">void sortiertAusgeben()
{
    ifstream fin( &quot;Adressen.txt&quot;, ios::in );
    if ( !fin )
        cout &lt;&lt; &quot;Datei konnte nich zum lesen geöffnet werden!\n&quot;;
    else
    {
        int i = 0;
        char temp;
        string vorname;
        string nachname;
        string adresse;
        string tele;
        string email;
        while (fin.get( temp ) )
        {
            if( temp == '_' ) // Zählen wie viele Adresse vorhanden sind
                ++i;
        }
        fin.close();

        vector&lt;Adresse&gt; Adressen( i );

        fin.open( &quot;Adressen.txt&quot;, ios::in );

        for( int j = 0; j &lt; i; ++j )
        {
            getline( fin, vorname );
            getline( fin, nachname );
            getline( fin, adresse );
            getline( fin, tele );
            getline( fin, email );
            Adressen[j] = Adresse( vorname, nachname, adresse, tele, email );
            while( fin.get( temp ) )
            {
                if( temp == '_' ) // Da bei '_' eine Neue Adresse losgeht
                    break;
            }
        }
        fin.close();

        sort( Adressen.begin(), Adressen.end(), &amp;sortiereNachVornamen );
        for( int j = 0; j &lt; i; ++j )
        {
            cout &lt;&lt; Adressen[j].getVorname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getNachname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getAdresse() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getTele() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getEmail() &lt;&lt; &quot;\n\n\n&quot;;
        }
    }
}

bool sortiereNachVornamen(const Adresse&amp; lhs, const Adresse&amp; rhs)
{
    return lhs.getVorname() &lt; rhs.getVorname();
}
</code></pre>
<p>Hoffe ihr könnt mir helfen, denn das Programm funktioniert zwar, er gibt mir jedoch einfach nur leere Zeilen aus=(<br />
Danke schonmal für Eure Hilfe und Bemühungen;-)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260912/gelöst-problem-mit-daten-ausgeben-aus-vektor</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 18:15:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260912.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Feb 2010 16:51:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Fri, 12 Feb 2010 12:35:09 GMT]]></title><description><![CDATA[<p>Hey Leute, ich habe ein Problem und kann einfach den Fehler nicht finden=(<br />
Und zwar habe ich eine Datei in der Adressen stehen, ich möchte die Daten auslesen, im Vektor speichern, sortieren und anschließend sortiert ausgeben.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">void sortiertAusgeben()
{
    ifstream fin( &quot;Adressen.txt&quot;, ios::in );
    if ( !fin )
        cout &lt;&lt; &quot;Datei konnte nich zum lesen geöffnet werden!\n&quot;;
    else
    {
        int i = 0;
        char temp;
        string vorname;
        string nachname;
        string adresse;
        string tele;
        string email;
        while (fin.get( temp ) )
        {
            if( temp == '_' ) // Zählen wie viele Adresse vorhanden sind
                ++i;
        }
        fin.close();

        vector&lt;Adresse&gt; Adressen( i );

        fin.open( &quot;Adressen.txt&quot;, ios::in );

        for( int j = 0; j &lt; i; ++j )
        {
            getline( fin, vorname );
            getline( fin, nachname );
            getline( fin, adresse );
            getline( fin, tele );
            getline( fin, email );
            Adressen[j] = Adresse( vorname, nachname, adresse, tele, email );
            while( fin.get( temp ) )
            {
                if( temp == '_' ) // Da bei '_' eine Neue Adresse losgeht
                    break;
            }
        }
        fin.close();

        sort( Adressen.begin(), Adressen.end(), &amp;sortiereNachVornamen );
        for( int j = 0; j &lt; i; ++j )
        {
            cout &lt;&lt; Adressen[j].getVorname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getNachname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getAdresse() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getTele() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getEmail() &lt;&lt; &quot;\n\n\n&quot;;
        }
    }
}

bool sortiereNachVornamen(const Adresse&amp; lhs, const Adresse&amp; rhs)
{
    return lhs.getVorname() &lt; rhs.getVorname();
}
</code></pre>
<p>Hoffe ihr könnt mir helfen, denn das Programm funktioniert zwar, er gibt mir jedoch einfach nur leere Zeilen aus=(<br />
Danke schonmal für Eure Hilfe und Bemühungen;-)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853763</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Fri, 12 Feb 2010 12:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 17:08:51 GMT]]></title><description><![CDATA[<p>Der Debugger ist dein Freund...</p>
<p>1. Nutze std::ifstream::exception.<br />
2. Datei nur einmal öffnen.<br />
3. Zum zurückspringen std::ifstream::seekg() verwenden.<br />
4. Nicht mit ASCII-zeichen hantieren wenn es sich um Zahlen handelt.<br />
5. Wenn du die Werte per []-Operator zuweist, solltest du ebenfalls Exceptions verwenden, da der Speicher nicht angefordert wird, wenn das Limit überschritten wurde.<br />
6. Speicher dynamisch allokieren und std::vector::push_back() verwenden.<br />
7. <em>&quot;return lhs.getVorname() &lt; rhs.getVorname();&quot;</em> wtf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853772</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Wed, 10 Feb 2010 17:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 17:24:47 GMT]]></title><description><![CDATA[<p>Ich weiß nicht so recht, Kóyaánasqatsi, einige deiner Tipps passen hier nicht ganz:</p>
<p>- Der Debugger ist dein Freund...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Ich kann den Fehler spontan auch nicht finden.</p>
<p>1. Nutze std::ifstream::exception.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Wozu so umständlich? !fin ist doch in Ordnung und anfängerfreundlich</p>
<p>2. Datei nur einmal öffnen.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>3. Zum zurückspringen std::ifstream::seekg() verwenden.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Oder sich das zurückspringen ganz sparen, mit Tipp 6.</p>
<p>4. Nicht mit ASCII-zeichen hantieren wenn es sich um Zahlen handelt.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Wovon redest du? Doch wohl hoffentlich nicht von der Telefonnummer?</p>
<p>5. Wenn du die Werte per []-Operator zuweist, solltest du ebenfalls Exceptions verwenden, da der Speicher nicht angefordert wird, wenn das Limit überschritten wurde.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Generell ja, wird hier aber wahrscheinlich nicht der Fehler sein.</p>
<p>6. Speicher dynamisch allokieren und std::vector::push_back() verwenden.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Genau. Der Threadersteller macht das ganze sehr umständlich. Da ist ja der ganze Vorteil von vector dahin.</p>
<p>7. <em>&quot;return lhs.getVorname() &lt; rhs.getVorname();&quot;</em> wtf?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Was gibts daran auszusetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853781</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 10 Feb 2010 17:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 17:48:29 GMT]]></title><description><![CDATA[<p>Hey erst mal Danke=)<br />
Also genau sowas wie ifstream::seekg hab ich auch gesucht, blos irgendwie nicht gefunden, und dachte dann, mache ich es eben mit öffnen und schließen.<br />
Nun die Frage, wie genau nutze ich seekg, raff das net so ganz, was muss ich als parameter übergeben um an den Dateianfang zu springen?</p>
<p>Hatte es auch erst mit push_back, da es nicht ging dachte ich vll gehts mit [], war dem wohl aber nicht so;-)</p>
<p>Also wär cool wenn ihr mir das mit seekg kurz erklären könntet, vll geht es ja dann=)</p>
<p>EDIT:<br />
Also wie seekg funktioniert hab ich jetzt rausgefunden, und auch eingebaut, hab auch jetzt wieder push_back reingemacht, es funktioniert jedoch trotzdem nicht=(</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853789</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 10 Feb 2010 17:48:29 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 18:12:24 GMT]]></title><description><![CDATA[<p>Zeig mal eine minimale compilierbare Version (am liebsten die mit push_back, dann brauchst du auch kein seekg) und einen kurzen Abschnitt aus der Adressdatei mit dem sich das Problem reproduzieren lässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853802</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 10 Feb 2010 18:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 18:22:05 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich weiß nicht so recht, Kóyaánasqatsi, einige deiner Tipps passen hier nicht ganz:</p>
<p>1. Nutze std::ifstream::exception.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> Wozu so umständlich? !fin ist doch in Ordnung und anfängerfreundlich</p>
</blockquote>
<p>Was hat !-Operator mit std::ifstream::exceptions zu tun? Es gibt noch weitere Flags.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>4. Nicht mit ASCII-zeichen hantieren wenn es sich um Zahlen handelt.<br />
Wovon redest du? Doch wohl hoffentlich nicht von der Telefonnummer?</p>
</blockquote>
<p>Sorry habe mich verguckt, habe nur schnell drüber geschaut und habe <em>temp == '_'</em> irgendwie im while()-Kopf gesehen.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>7. &quot;return lhs.getVorname() &lt; rhs.getVorname();&quot; wtf?<br />
Was gibts daran auszusetzen?</p>
</blockquote>
<p>Ja. Warum sollte man überprüfen ob Vorname1 &lt; Vorname2?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23000">@fr33g</a><br />
Keine Ahnung was du da startest, aber generell sollte <em>fin.seekg(0);</em> gehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853805</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Wed, 10 Feb 2010 18:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Wed, 10 Feb 2010 22:34:59 GMT]]></title><description><![CDATA[<p>Ja ich überprüfe es um die Adressen nach Vorname sortiert auszugeben;-)</p>
<p>mhh also hier mal bissel code der euch vll hilft;-)<br />
teil von funktionen.cpp</p>
<pre><code class="language-cpp">#include &quot;classAdresse.h&quot;
#include &quot;funktionen.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

using namespace std;

void menu( int&amp; auswahl )
{
    cout &lt;&lt; &quot;Was wollen sie tun:\n&quot;; // Programmmenü
    cout &lt;&lt; &quot;Neue Adresse anlegen(1)\n&quot;;
    cout &lt;&lt; &quot;Adresse suchen(2)\n&quot;;
    cout &lt;&lt; &quot;Alle Adressen ausgeben(3)\n&quot;;
    cout &lt;&lt; &quot;Alle Adressen sortiert ausgeben(4)\n&quot;;
    cout &lt;&lt; &quot;Programm beenden(5)\n&quot;;
    cin &gt;&gt; auswahl;

    if( ( auswahl &lt; 1 ) || ( auswahl &gt; 5 ) )
    {
        cout &lt;&lt; &quot;Falsche Eingabe!\n&quot;;
        menu(auswahl);
    }
}
void adresseAnlegen( map&lt;string, Adresse&gt;&amp; Adressen )
{
    cout &lt;&lt; &quot;Geben sie den Vornamen ein: &quot;;
    string vorname;
    cin &gt;&gt; vorname;
    cout &lt;&lt; &quot;Geben sie den Nachnamen ein: &quot;;
    string nachname;
    cin &gt;&gt; nachname;
    cout &lt;&lt; &quot;Geben sie die Adresse ein: &quot;;
    string adresse;
    cin.ignore();
    getline( cin, adresse );
    cout &lt;&lt; &quot;Geben sie die Telefonnummer ein: &quot;;
    string tele;
    cin &gt;&gt; tele;
    cout &lt;&lt; &quot;Geben sie die Email-Adresse ein: &quot;;
    string email;
    cin&gt;&gt; email;

    Adressen[vorname] = Adresse(vorname, nachname, adresse, tele, email); // Adresse wird erstellt in der map

    ofstream fout( &quot;Adressen.txt&quot;, ios::app );

    if( !fout )
        cout &lt;&lt; &quot;Die Datei konnte nicht zum Schreiben geöffnet werden!\n&quot;;
    else
    {
        fout &lt;&lt; &quot;_&quot; &lt;&lt; Adressen[vorname].getVorname() &lt;&lt; &quot;\n&quot;; // Eigenschaften in die Datei schreiben
        fout &lt;&lt; Adressen[vorname].getNachname() &lt;&lt; &quot;\n&quot;;
        fout &lt;&lt; Adressen[vorname].getAdresse() &lt;&lt; &quot;\n&quot;;
        fout &lt;&lt; Adressen[vorname].getTele() &lt;&lt; &quot;\n&quot;;
        fout &lt;&lt; Adressen[vorname].getEmail() &lt;&lt; &quot;\n\n\n&quot;;
    }
    fout.close();
}
void menuAuslesen( map&lt;string, Adresse&gt;&amp; Adressen )
{
    int auswahl;

    cout &lt;&lt; &quot;Wollen sie nach Vorname suchen(1)\n&quot;;
    cout &lt;&lt; &quot;Wollenn sie nach Nachname suchen(2)\n&quot;;
    cin &gt;&gt; auswahl;
    if ( ( auswahl &lt; 1 ) || ( auswahl &gt; 2 ) )
    {
        cout &lt;&lt; &quot;Falsche Eingabe!\n&quot;;
        menuAuslesen( Adressen );
    }

    switch( auswahl )
    {
        case 1:
        {
            auslesenVorname( Adressen ); // Öffnen der Funktion zum Auslesen bzw Suche per Vorname
            break;
        }
        case 2:
        {
            auslesenNachname( Adressen ); // Öffnen der Funktion zum Auslesen bzw Suche per Nachname
            break;
        }
    }
}
void sortiertAusgeben()
{
    ifstream fin( &quot;Adressen.txt&quot;, ios::in );
    if ( !fin )
        cout &lt;&lt; &quot;Datei konnte nich zum lesen geöffnet werden!\n&quot;;
    else
    {
        int i = 0;
        char temp;
        string vorname;
        string nachname;
        string adresse;
        string tele;
        string email;
        while (fin.get( temp ) )
        {
            if( temp == '_' ) // Zählen wie viele Adresse vorhanden sind
                ++i;
        }
        vector&lt;Adresse&gt; Adressen;

        fin.seekg( 0, ios::beg );

        for( int j = 0; j &lt; i; ++j )
        {
            getline( fin, vorname );
            getline( fin, nachname );
            getline( fin, adresse );
            getline( fin, tele );
            getline( fin, email );
            Adressen.push_back( Adresse( vorname, nachname, adresse, tele, email ) );
            while( fin.get( temp ) )
            {
                if( temp == '_' ) // Da bei '_' eine Neue Adresse losgeht
                    break;
            }
        }
        fin.close();

        sort( Adressen.begin(), Adressen.end(), &amp;sortiereNachVornamen );
        for( int j = 0; j &lt; i; ++j )
        {
            cout &lt;&lt; Adressen[j].getVorname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getNachname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getAdresse() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getTele() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getEmail() &lt;&lt; &quot;\n\n\n&quot;;
        }
    }
}

bool sortiereNachVornamen(const Adresse&amp; lhs, const Adresse&amp; rhs)
{
    return lhs.getVorname() &lt; rhs.getVorname();
}
</code></pre>
<p>class Adresse.h</p>
<pre><code class="language-cpp">#ifndef CLASSADRESSE_H_INCLUDED
#define CLASSADRESSE_H_INCLUDED

#include &lt;string&gt;

class Adresse
{
    public:
        Adresse(){}
        Adresse(std::string vorname, std::string nachname, std::string adresse, std::string tele, std::string email);
        ~Adresse(){}
        std::string getVorname() const { return itsVorname; }
        void setVorname( std::string vorname );
        std::string getNachname() const { return itsNachname; }
        void setNachname( std::string nachname );
        std::string getAdresse() const { return itsAdresse; }
        void setAdresse( std::string adresse );
        std::string getTele() const { return itsTele; }
        void setTele( std::string tele );
        std::string getEmail() const { return itsEmail; }
        void setEmail( std::string email );

    private:
        std::string itsVorname;
        std::string itsNachname;
        std::string itsAdresse;
        std::string itsTele;
        std::string itsEmail;
};
#endif // CLASSADRESSE_H_INCLUDED
</code></pre>
<p>und die main</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;fstream&gt;
#include &quot;classAdresse.h&quot;
#include &quot;funktionen.h&quot;

using namespace std;

int main()
{
    bool stop = false;
    int auswahl;
    map&lt;string, Adresse&gt; Adressen;

    while( !stop )
    {
        menu(auswahl);

        switch( auswahl )
        {
            case 1:
            {
                adresseAnlegen( Adressen );
                break;
            }
            case 2:
            {
                menuAuslesen( Adressen );
                break;
            }
            case 3:
            {
                alleAusgeben( Adressen );
                break;
            }
            case 4:
            {
                sortiertAusgeben();
                break;
            }
            case 5:
            {
                cout &lt;&lt; &quot;Programm wird beeendet!&quot;;
                stop = true;
                break;
            }
        }
    }
}
</code></pre>
<p>Hoffe mal des geht von der Codemenge und ihr könnt mir damit helfen=)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1853920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1853920</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 10 Feb 2010 22:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Fri, 12 Feb 2010 11:58:02 GMT]]></title><description><![CDATA[<p>Mhh kann mir keiner weiter helfen=(?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854604</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Fri, 12 Feb 2010 11:58:02 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Fri, 12 Feb 2010 12:27:58 GMT]]></title><description><![CDATA[<p>Wenn du dir einfach interessante Werte an verschiedenen Stellen ausgeben lässt, hast du bei solchen Problemen den Fehler in einer Minute gefunden.<br />
Also z.B. vorname, nachname, usw. einmal nach dem Einlesen und dann im vector nach dem push (back() gibt dir das letzte Element).<br />
Außerdem wäre Adresse.cpp noch ganz interessant, wegen der Implementation des Konstruktors.<br />
Übrigens: strings immer per Referenz (const std::string&amp;) übergeben, sonst werden davon überflüssigerweise Kopien angelegt und das ist bei Strings nicht ganz billig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854616</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 12 Feb 2010 12:27:58 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Problem mit Daten ausgeben aus Vektor on Fri, 12 Feb 2010 12:34:45 GMT]]></title><description><![CDATA[<p>Ja dachte zu viel Code wär auch bissel blöd, dass ihr sonst zu viel zum lesen habt;-)<br />
Aber wäre wohl nötig gewesen.</p>
<p>Aaaber ich habs jetzt grade eben selber hinbekommen, hab mir nochmal angeschaut wie ichs eigentlich bei den anderen Ausgabeoptionen gelöst hab und habs jetzt daher dass sortierte ausgeben nochmal bisschen grundlegend geändert, und siehe da es geht=)</p>
<p>Poste trotzdem mal den Code.</p>
<pre><code class="language-cpp">void sortiertAusgeben()
{
    vector&lt;Adresse&gt; Adressen;
    ifstream fin( &quot;Adressen.txt&quot;, ios::in );
    if ( !fin )
        cout &lt;&lt; &quot;Datei konnte nich zum lesen geöffnet werden!\n&quot;;
    else
    {
        char temp;
        string vorname;
        string nachname;
        string adresse;
        string tele;
        string email;
        while (fin.get( temp ) )
        {
            if( temp == '_' ) // Zählen wie viele Adresse vorhanden sind
            {
                getline( fin, vorname );
                getline( fin, nachname );
                getline( fin, adresse );
                getline( fin, tele );
                getline( fin, email );
                Adressen.push_back( Adresse( vorname, nachname, adresse, tele, email ) );
            }
        }
        fin.close();

        sort( Adressen.begin(), Adressen.end(), &amp;sortiereNachVornamen );

        cout &lt;&lt; endl;

        for( int j = 0; j &lt; Adressen.size(); ++j )
        {
            cout &lt;&lt; Adressen[j].getVorname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getNachname() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getAdresse() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getTele() &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; Adressen[j].getEmail() &lt;&lt; &quot;\n\n\n&quot;;
        }

    }
}
</code></pre>
<p>Also Danke an alle für die Hilfe;-)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854624</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Fri, 12 Feb 2010 12:34:45 GMT</pubDate></item></channel></rss>