<?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 getline()  - GELÖST -]]></title><description><![CDATA[<p>Ich habe ein kleines Programm zum Üben für den Umgang mit Strings geschrieben. Leider wird die Funktion getline()(ab Zeile 35) übersprungen.<br />
Weiß jemand, woran das liegt?<br />
Wenn ich die Funktion gleich am Anfang einfüge, funktioniert es.</p>
<pre><code class="language-cpp">//Stringübung
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;    //Um den Pufferinhalt ignorieren zu können, siehe Zeile 38

using namespace std;

int main()
{
    //Variablen definieren
    string string1;
    string string2;
    string string3;

    //Eingabe erster String
    cout&lt;&lt;&quot;Eingabe string1: &quot;;
    cin&gt;&gt;string1;

    //Eingabe zweiter String
    cout&lt;&lt;&quot;Eingabe string2: &quot;;
    cin&gt;&gt;string2;

    //string2 string1 zuweisen und Ergebnis ausgeben
    cout &lt;&lt; &quot;String zuweisen: &quot;&lt;&lt; endl;
    string1=string2;
    cout&lt;&lt;string1&lt;&lt;endl&lt;&lt;endl;

    //string2 an string1 anängen und Ergebnis ausgeben
    cout&lt;&lt;&quot;String anhaengen: &quot;&lt;&lt;endl;
    string1+=string2;
    cout&lt;&lt;string1&lt;&lt;endl&lt;&lt;endl;

    //Anzahl der Zeichen von string1 ermitteln und ausgeben
    cout&lt;&lt;&quot;Groesse(Anzahl der Zeichen) ermitteln: &quot;&lt;&lt;endl;
    cout&lt;&lt;string1.size()&lt;&lt;endl&lt;&lt;endl;

    //String zeilenweise einlesen und ausgeben, vorher Puffer ignorieren
    cin.ignore(std::numeric_limits&lt;streamsize&gt;::max(),'\n'); //Puffer ignorieren
    cout&lt;&lt;&quot;Bitte Eingabe taetigen: &quot;&lt;&lt;endl;
    getline(cin,string3);
    cout&lt;&lt;&quot;Eingegeben wurde: &quot;&lt;&lt;string3&lt;&lt;endl;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/290285/probleme-mit-getline-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 14:12:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290285.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Jul 2011 12:04:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 18:36:18 GMT]]></title><description><![CDATA[<p>Ich habe ein kleines Programm zum Üben für den Umgang mit Strings geschrieben. Leider wird die Funktion getline()(ab Zeile 35) übersprungen.<br />
Weiß jemand, woran das liegt?<br />
Wenn ich die Funktion gleich am Anfang einfüge, funktioniert es.</p>
<pre><code class="language-cpp">//Stringübung
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;    //Um den Pufferinhalt ignorieren zu können, siehe Zeile 38

using namespace std;

int main()
{
    //Variablen definieren
    string string1;
    string string2;
    string string3;

    //Eingabe erster String
    cout&lt;&lt;&quot;Eingabe string1: &quot;;
    cin&gt;&gt;string1;

    //Eingabe zweiter String
    cout&lt;&lt;&quot;Eingabe string2: &quot;;
    cin&gt;&gt;string2;

    //string2 string1 zuweisen und Ergebnis ausgeben
    cout &lt;&lt; &quot;String zuweisen: &quot;&lt;&lt; endl;
    string1=string2;
    cout&lt;&lt;string1&lt;&lt;endl&lt;&lt;endl;

    //string2 an string1 anängen und Ergebnis ausgeben
    cout&lt;&lt;&quot;String anhaengen: &quot;&lt;&lt;endl;
    string1+=string2;
    cout&lt;&lt;string1&lt;&lt;endl&lt;&lt;endl;

    //Anzahl der Zeichen von string1 ermitteln und ausgeben
    cout&lt;&lt;&quot;Groesse(Anzahl der Zeichen) ermitteln: &quot;&lt;&lt;endl;
    cout&lt;&lt;string1.size()&lt;&lt;endl&lt;&lt;endl;

    //String zeilenweise einlesen und ausgeben, vorher Puffer ignorieren
    cin.ignore(std::numeric_limits&lt;streamsize&gt;::max(),'\n'); //Puffer ignorieren
    cout&lt;&lt;&quot;Bitte Eingabe taetigen: &quot;&lt;&lt;endl;
    getline(cin,string3);
    cout&lt;&lt;&quot;Eingegeben wurde: &quot;&lt;&lt;string3&lt;&lt;endl;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2096779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096779</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 18:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:07:04 GMT]]></title><description><![CDATA[<p>Wie kannst du ohne</p>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
<p>std::string überhaupt nutzen?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096781</guid><dc:creator><![CDATA[qw]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:09:43 GMT]]></title><description><![CDATA[<p>Wird wahrscheinlich von &lt;iostream&gt; included. Aber darauf verlassen würde ich mich niemals. Immer die Header includen, die man braucht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096782</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:13:54 GMT]]></title><description><![CDATA[<p>qw schrieb:</p>
<blockquote>
<p>Wie kannst du ohne</p>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
<p>std::string überhaupt nutzen?!</p>
</blockquote>
<p>Berechtige Frage, das weiß ich leider nicht, es funktioniert aber erstaunlicherweise. (Benutze Codeblocks)</p>
<p>Aber auch mit Einbinden der String-Bibliothek wird getline() übersprungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096786</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:14:22 GMT]]></title><description><![CDATA[<p>'\n' befindet sich noch im Puffer. Das wird dann von getline() eingelesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096787</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:14:22 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:15:12 GMT]]></title><description><![CDATA[<p>Weils mir nur gerade so auffällt: C++ Strings haben die wunderbare Eigenschaft, dass Operatoren überladen wurden. Du kannst also statt .assign() ein = verwenden und statt .append() das +=. <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/2096789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096789</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:22:06 GMT]]></title><description><![CDATA[<p>Jetzt helft doch dem armen Jungen Mal!</p>
<pre><code class="language-cpp">#include &lt;limits&gt;
cin.ignore(std::numeric_limits&lt;streamsize&gt;::max(),'\n');
</code></pre>
<p>Das ignore entfernt das '\n' aus dem Buffer. Führe es vor getline einfach aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096790</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:36:26 GMT]]></title><description><![CDATA[<p>Jupp, nun funktioniert es.<br />
Wenn ich das richtig verstehe, sollte man also jedesmal, bevor man getline() benutzt, den Eingabepuffer löschen (oder nach Inhalt abfragen?)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096793</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 12:44:02 GMT]]></title><description><![CDATA[<p>redrew99 schrieb:</p>
<blockquote>
<p>Jupp, nun funktioniert es.<br />
Wenn ich das richtig verstehe, sollte man also jedesmal, bevor man getline() benutzt, den Eingabepuffer löschen (oder nach Inhalt abfragen?)?</p>
</blockquote>
<p>Eingabepuffer löschen geht leider nicht. fflush(stdin); und alles was den gleichen Effekt hätte ist böse! <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="🙂"
    /><br />
<a href="http://www.c-plusplus.net/forum/39349" rel="nofollow">http://www.c-plusplus.net/forum/39349</a></p>
<p>Deswegen muss man sich mit diesem Konstrukt da ein &quot;ignoriere den Rest der Zeile&quot; schaffen. Das jedes Mal vor getline() zu machen, hat aber einen entscheidenen Nachteil: Ist nichts im Eingabepuffer, muss man erst einmal &quot;Enter&quot; drücken.</p>
<p>Es gibt leider kaum wirklich schöne Lösungen dafür, bzw. ich kenne keine, das Einzige was mir dazu einfallen würde ist es, immer nach cin &gt;&gt; x den Rest der Zeile zu ignorieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096796</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Jul 2011 12:44:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 14:21:46 GMT]]></title><description><![CDATA[<p>Hm, ok.<br />
Habe gerademal den Originalcode, der zugrundelag, kompiliert, da taucht das Problem interessanterweise nicht auf. Wie kann das sein?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main(void) {
   string str1(&quot;String Nr. 1&quot;);
   // Einfache Zuweisung ist möglich
   string str2 = str1;
   string str3;
   // Ausgabe über cout
   cout &lt;&lt; &quot;str1: &quot; &lt;&lt; str1 &lt;&lt; endl;
   cout &lt;&lt; &quot;str2: &quot; &lt;&lt; str2 &lt;&lt; endl;
   // Komplette Zeile einlesen
   cout &lt;&lt; &quot;String eingeben: &quot;;
   getline(cin, str3);  // Zeile einlesen
   cout &lt;&lt; &quot;Ihre Eingabe: &quot; &lt;&lt; str3 &lt;&lt; endl;
   // String str1 mit str3 ersetzen
   str1.assign(str3);
   cout &lt;&lt; &quot;str1: &quot;&lt;&lt; str1 &lt;&lt; endl;
   // Anzahl der Zeichen im String ausgeben
   cout &lt;&lt; &quot;Zeichen in str1: &quot; &lt;&lt; str1.size() &lt;&lt; endl;
   // String aneinanderhängen
   str1.append(str2);
   cout &lt;&lt; &quot;str1: &quot;&lt;&lt; str1 &lt;&lt; endl;

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2096824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096824</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 14:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 14:31:45 GMT]]></title><description><![CDATA[<p>redrew99 schrieb:</p>
<blockquote>
<p>Hm, ok.<br />
Habe gerademal den Originalcode, der zugrundelag, kompiliert, da taucht das Problem interessanterweise nicht auf. Wie kann das sein?</p>
</blockquote>
<p>In dem Code ist das getline() die erste Aktion, die du auf cin ausführst, also gibt es keine vorherigen Lesevorgänge, die ein überschüssiges '\n' im Eingabepuffer zurücklassen könnten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096830</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 23 Jul 2011 14:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 17:37:50 GMT]]></title><description><![CDATA[<p>Das heisst dann also, daß jedes &quot;Enter&quot;(Zeilenumbruch) bei einer Eingabe über cin ein &quot;\n&quot; im Pufferspeicher läßt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096899</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 17:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 17:45:38 GMT]]></title><description><![CDATA[<p>Das heißt vor allem, daß der Eingabe-Operator bis zum nächsten Whitespace (Leerzeichen, Zeilenwechsel, Tab) liest. Und der Tastaturpuffer der Konsole gibt die Eingabe üblicherweise erst an dein Programm weiter, wenn du sie mit ENTER bestätigst - dieses bleibt bei der Eingabe per operator&gt;&gt; im Stream zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096904</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 23 Jul 2011 17:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 18:03:44 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>...wenn du sie mit ENTER bestätigst - dieses bleibt bei der Eingabe per operator**&gt;&gt;** im Stream zurück.</p>
</blockquote>
<p>Ok, danke für die Erklärung.<br />
Was ist denn davon zu halten, alle Zeilen mit &quot;cin&quot; durch getline() zu ersetzen?</p>
<p>Der einzige Nachteil dürfte darin bestehen, daß man die Eingaben mit Enter abschließen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096921</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 23 Jul 2011 18:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit getline()  - GELÖST - on Sat, 23 Jul 2011 18:07:29 GMT]]></title><description><![CDATA[<p>Nachteil/Vorteil ist so eine Sache. Aber der Unterschied ist: Du kannst mehrere Wörter auf einmal eingeben. Zudem müsstest du, falls du etwas anderes als einen String einlesen möchtest, auch wieder über Umwege konvertieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2096923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2096923</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Jul 2011 18:07:29 GMT</pubDate></item></channel></rss>