<?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[Probleme mit globales getline()]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei mir funktioniert die getline Funktion nicht richtig!</p>
<p>Irgendwie ist beim ausgeben der Strom kaputt.</p>
<p><a href="http://www.bilder-hochladen.net/files/fjnx-1-jpg-nb.html" rel="nofollow">http://www.bilder-hochladen.net/files/fjnx-1.jpg</a></p>
<p>links (kaputt) hab ich den Code verwendet<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getDeutsch() &lt;&lt; &quot;-&quot; &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getEnglisch() &lt;&lt; endl;</p>
<p>und rechts<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getDeutsch() &lt;&lt; &quot;#&quot; &lt;&lt; endl; // geht<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getEnglisch() &lt;&lt; endl;</p>
<pre><code class="language-cpp">#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;string&gt;
#include &quot;Word.h&quot;

void Datenlesen(vector&lt;Word&gt; &amp;);

int main(int argc, char** argv) {
    vector&lt;Word&gt; vWords;

    Datenlesen(vWords);
    for (int i = 0; i &lt; vWords.size(); i++) {
        cout &lt;&lt; i &lt;&lt; &quot;. &quot;;
//        cout &lt;&lt; vWords.at(i).getDeutsch() &lt;&lt; &quot;-&quot; &lt;&lt; vWords.at(i).getEnglisch() &lt;&lt; endl; // geht nicht
                        cout &lt;&lt; vWords.at(i).getDeutsch() &lt;&lt; &quot;#&quot; &lt;&lt; endl; // geht
                        cout &lt;&lt; vWords.at(i).getEnglisch() &lt;&lt; endl;
    }

    return (EXIT_SUCCESS);
}

void Datenlesen(vector&lt;Word&gt; &amp; vWords) {
    ifstream inClientFile(&quot;Words.txt&quot;, ios::in);
    if (!inClientFile) {
        cerr &lt;&lt; &quot;File could not be opened&quot; &lt;&lt; endl;
        exit(1);
    } else {
        string Zeile, Englisch, Deutsch;
        int PositionKomma;
        while (!inClientFile.eof()) {
            getline(inClientFile, Zeile);
            //    inClientFile &gt;&gt; Zeile; // geht leider nicht da auch leerzeichen vorhanden sind
            PositionKomma = Zeile.find(&quot;,&quot;);
            Englisch = Zeile.substr(0, PositionKomma);
            Deutsch = Zeile.substr(PositionKomma + 1, string::npos);
            Word wort;
            wort.setEnglisch(Englisch);
            wort.setDeutsch(Deutsch);
            vWords.push_back(wort);
        }
        inClientFile.close();
    }
}
</code></pre>
<p><a href="https://www.fbi.h-da.de/fileadmin/personal/h.weber/Material_PG2/Words.txt" rel="nofollow">Die Textdatei</a></p>
<p>In Zeile 34 macht die getline() irgendwas kaputt..<br />
mit inClientFile &gt;&gt; Zeile geht es zwar auch, jedoch ist es dann nicht so toll wenn leerzeichen in einer Zeile sind.</p>
<p>Ich würde jedoch gerne den Code aus Zeile 18-19 so umschreiben, dass beide Wörter wie in Zeile 17 in einer Zeile ausgegeben werden.</p>
<p>Gruß<br />
Geddon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270089/probleme-mit-globales-getline</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 17:00:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270089.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Jul 2010 12:36:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit globales getline() on Tue, 06 Jul 2010 12:36:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei mir funktioniert die getline Funktion nicht richtig!</p>
<p>Irgendwie ist beim ausgeben der Strom kaputt.</p>
<p><a href="http://www.bilder-hochladen.net/files/fjnx-1-jpg-nb.html" rel="nofollow">http://www.bilder-hochladen.net/files/fjnx-1.jpg</a></p>
<p>links (kaputt) hab ich den Code verwendet<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getDeutsch() &lt;&lt; &quot;-&quot; &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getEnglisch() &lt;&lt; endl;</p>
<p>und rechts<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getDeutsch() &lt;&lt; &quot;#&quot; &lt;&lt; endl; // geht<br />
cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getEnglisch() &lt;&lt; endl;</p>
<pre><code class="language-cpp">#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;string&gt;
#include &quot;Word.h&quot;

void Datenlesen(vector&lt;Word&gt; &amp;);

int main(int argc, char** argv) {
    vector&lt;Word&gt; vWords;

    Datenlesen(vWords);
    for (int i = 0; i &lt; vWords.size(); i++) {
        cout &lt;&lt; i &lt;&lt; &quot;. &quot;;
//        cout &lt;&lt; vWords.at(i).getDeutsch() &lt;&lt; &quot;-&quot; &lt;&lt; vWords.at(i).getEnglisch() &lt;&lt; endl; // geht nicht
                        cout &lt;&lt; vWords.at(i).getDeutsch() &lt;&lt; &quot;#&quot; &lt;&lt; endl; // geht
                        cout &lt;&lt; vWords.at(i).getEnglisch() &lt;&lt; endl;
    }

    return (EXIT_SUCCESS);
}

void Datenlesen(vector&lt;Word&gt; &amp; vWords) {
    ifstream inClientFile(&quot;Words.txt&quot;, ios::in);
    if (!inClientFile) {
        cerr &lt;&lt; &quot;File could not be opened&quot; &lt;&lt; endl;
        exit(1);
    } else {
        string Zeile, Englisch, Deutsch;
        int PositionKomma;
        while (!inClientFile.eof()) {
            getline(inClientFile, Zeile);
            //    inClientFile &gt;&gt; Zeile; // geht leider nicht da auch leerzeichen vorhanden sind
            PositionKomma = Zeile.find(&quot;,&quot;);
            Englisch = Zeile.substr(0, PositionKomma);
            Deutsch = Zeile.substr(PositionKomma + 1, string::npos);
            Word wort;
            wort.setEnglisch(Englisch);
            wort.setDeutsch(Deutsch);
            vWords.push_back(wort);
        }
        inClientFile.close();
    }
}
</code></pre>
<p><a href="https://www.fbi.h-da.de/fileadmin/personal/h.weber/Material_PG2/Words.txt" rel="nofollow">Die Textdatei</a></p>
<p>In Zeile 34 macht die getline() irgendwas kaputt..<br />
mit inClientFile &gt;&gt; Zeile geht es zwar auch, jedoch ist es dann nicht so toll wenn leerzeichen in einer Zeile sind.</p>
<p>Ich würde jedoch gerne den Code aus Zeile 18-19 so umschreiben, dass beide Wörter wie in Zeile 17 in einer Zeile ausgegeben werden.</p>
<p>Gruß<br />
Geddon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922209</guid><dc:creator><![CDATA[Geddon]]></dc:creator><pubDate>Tue, 06 Jul 2010 12:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit globales getline() on Tue, 06 Jul 2010 13:23:07 GMT]]></title><description><![CDATA[<p>Geddon schrieb:</p>
<blockquote>
<p>In Zeile 34 macht die getline() irgendwas kaputt..</p>
</blockquote>
<p>Hallo Geddon,</p>
<p>woher weißt Du, dass getline die Ursache ist?<br />
Die Datei words.txt enthält Steuerzeichen in DOS-Format (Also &lt;CR&gt; und &lt;LF&gt;) am Ende jeder Zeile. Du arbeitest wahrscheinlich unter Linux und das getline liest unformatiert(!) bis zum Zeilenende. Zeilenende bei Linux ist &lt;LF&gt; - das bedeutet, dass das &lt;CR&gt; mit am Ende jeder Zeile und damit auch am Ende jedes deutschen Wortes steht. Wenn Du dann ein Deutsches Wort ausgibt, beginnt jede weitere Ausgabe wieder am Anfang der Zeile.</p>
<p>Also 'cout &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getDeutsch()' druckt</p>
<pre><code>1.blau&lt;CR&gt;
</code></pre>
<p>&lt;CR&gt; setzt den Schreibzeiger an den Anfang der Zeile und weiter geht es mit: '&quot;-&quot; &lt;&lt; <a href="http://vWords.at" rel="nofollow">vWords.at</a>(i).getEnglisch() &lt;&lt; endl;'</p>
<pre><code>blueau
</code></pre>
<p>Ich empfehle Dir ab Zeile 33</p>
<pre><code class="language-cpp">while( getline( getline( inClientFile &gt;&gt; skipws, Englisch, ',' ) &gt;&gt; skipws, Deutsch ) )
        {
            // --   Lösche alles am Ende, was da nicht hingehört
            while( !Deutsch.empty() &amp;&amp; isspace( Deutsch[Deutsch.size()-1] ) ) // ggf. #include &lt;cctype&gt; falls nötig
                Deutsch.erase( --Deutsch.end() );  
            Word wort;
            wort.setEnglisch(Englisch);
            wort.setDeutsch(Deutsch);
            vWords.push_back(wort);
        }
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922240</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 06 Jul 2010 13:23:07 GMT</pubDate></item></channel></rss>