<?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[Einfache Aufgabe, dummes Problem: getline(cin, str);]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem: Ich lasse den Benutzer verschiedene Eigenschafften eines Objektes eingeben. Diese Eingaben sind in Methoden der Klasse des Objektes deifiniert. Aufgerufen werden diese in der Main-Klasse meiner Applikation. Zuerst soll der Benutzer einen String, dann zwei Double- und dann eine integer-Variable eingeben. Vor und nach jeder einzelnen Eingabe ist Text welcher mit cout ausgegeben wurde. Die EIngabe geschiet beim String mit getline(cin, str); und bei den anderen variablen mittels cin &gt;&gt; foo;</p>
<p>Die Schleife in der die Methoden aufgerufen werden sieht folgendermaaßen aus:</p>
<pre><code class="language-cpp">// Einlesen der Eigenschafften einer Produktgruppe;
int i = 1;
while( i &lt;= anzahlProjektgruppen ) {

// Ausgabe des Eingabfortschritts
cout &lt;&lt; &quot;\n\n\t\t\t### Produktgruppe &quot; &lt;&lt; i &lt;&lt; &quot; von &quot; &lt;&lt; anzahlProjektgruppen &lt;&lt; &quot; ###\n&quot;;

// Wenn wir eine neue Produktgruppe anlegen möchtem müssen wir ersteinmal
// in Erfahrung bringen wie diese heißen soll (zb. Taschentuch, Kugelschreiber...).
aProduktgruppen[i].eingabeName();

// Nun können auch Gewinn, Zeit und Mindestanzahl eingegeben werden.
aProduktgruppen[i].eingabeGewinn();
aProduktgruppen[i].eingabeZeit();
aProduktgruppen[i].eingabeMindestanzahl();

// Inkrementierung von i, damit die Schleife irgentwann endet
i++;

}
</code></pre>
<p>eingabeName und eingabeGewinn so:</p>
<pre><code class="language-cpp">/**
* Methode zur Benutzereingabe des Produktgruppennamens.
*/
void eingabeName() {

cout &lt;&lt; &quot;\n Wie ist der Name der neuen Produktgruppe?\n-- &quot;;
getline(cin, name);

};
/**
* Methode zur Benutzereingabe des Gewinnes.
*/
void eingabeGewinn() {

cout &lt;&lt; &quot;\n Welchen Gewinn bringt ein Produkt der Produktgruppe &quot; &lt;&lt; name &lt;&lt; &quot;?\n-- &quot;;
cin &gt;&gt; gewinn;

};
</code></pre>
<p>Wenn ich das Programm starte habe ich aber nie die Gelegenheit dazu einen Namen einzugeben. Das Programm läuft weiter bis zur Eingabe des Gewinnes und wartet dann da auf eine Eingabe.<br />
Da in der Ausgabe ein \n fehlt, schätze ich das getline eben diese Leere Zeile eingelesen hat. Wie kann ich das verhindern/was mache ich falsch?</p>
<p>Vielen Dank für eure Hilfe</p>
<p>// EDIT: Ein cin.clear(); vor der Ausführung des getlines hilft auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211150/einfache-aufgabe-dummes-problem-getline-cin-str</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 20:51:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211150.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Apr 2008 15:25:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einfache Aufgabe, dummes Problem: getline(cin, str); on Sat, 19 Apr 2008 15:25:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem: Ich lasse den Benutzer verschiedene Eigenschafften eines Objektes eingeben. Diese Eingaben sind in Methoden der Klasse des Objektes deifiniert. Aufgerufen werden diese in der Main-Klasse meiner Applikation. Zuerst soll der Benutzer einen String, dann zwei Double- und dann eine integer-Variable eingeben. Vor und nach jeder einzelnen Eingabe ist Text welcher mit cout ausgegeben wurde. Die EIngabe geschiet beim String mit getline(cin, str); und bei den anderen variablen mittels cin &gt;&gt; foo;</p>
<p>Die Schleife in der die Methoden aufgerufen werden sieht folgendermaaßen aus:</p>
<pre><code class="language-cpp">// Einlesen der Eigenschafften einer Produktgruppe;
int i = 1;
while( i &lt;= anzahlProjektgruppen ) {

// Ausgabe des Eingabfortschritts
cout &lt;&lt; &quot;\n\n\t\t\t### Produktgruppe &quot; &lt;&lt; i &lt;&lt; &quot; von &quot; &lt;&lt; anzahlProjektgruppen &lt;&lt; &quot; ###\n&quot;;

// Wenn wir eine neue Produktgruppe anlegen möchtem müssen wir ersteinmal
// in Erfahrung bringen wie diese heißen soll (zb. Taschentuch, Kugelschreiber...).
aProduktgruppen[i].eingabeName();

// Nun können auch Gewinn, Zeit und Mindestanzahl eingegeben werden.
aProduktgruppen[i].eingabeGewinn();
aProduktgruppen[i].eingabeZeit();
aProduktgruppen[i].eingabeMindestanzahl();

// Inkrementierung von i, damit die Schleife irgentwann endet
i++;

}
</code></pre>
<p>eingabeName und eingabeGewinn so:</p>
<pre><code class="language-cpp">/**
* Methode zur Benutzereingabe des Produktgruppennamens.
*/
void eingabeName() {

cout &lt;&lt; &quot;\n Wie ist der Name der neuen Produktgruppe?\n-- &quot;;
getline(cin, name);

};
/**
* Methode zur Benutzereingabe des Gewinnes.
*/
void eingabeGewinn() {

cout &lt;&lt; &quot;\n Welchen Gewinn bringt ein Produkt der Produktgruppe &quot; &lt;&lt; name &lt;&lt; &quot;?\n-- &quot;;
cin &gt;&gt; gewinn;

};
</code></pre>
<p>Wenn ich das Programm starte habe ich aber nie die Gelegenheit dazu einen Namen einzugeben. Das Programm läuft weiter bis zur Eingabe des Gewinnes und wartet dann da auf eine Eingabe.<br />
Da in der Ausgabe ein \n fehlt, schätze ich das getline eben diese Leere Zeile eingelesen hat. Wie kann ich das verhindern/was mache ich falsch?</p>
<p>Vielen Dank für eure Hilfe</p>
<p>// EDIT: Ein cin.clear(); vor der Ausführung des getlines hilft auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494676</guid><dc:creator><![CDATA[MEETyA]]></dc:creator><pubDate>Sat, 19 Apr 2008 15:25:20 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Aufgabe, dummes Problem: getline(cin, str); on Sat, 19 Apr 2008 16:52:10 GMT]]></title><description><![CDATA[<p>Benutzt Du zufällig VisualStudio 6? Da funktioniert das Getline nicht richtig.<br />
Als Workaround geht da cin.getline</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494719</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Sat, 19 Apr 2008 16:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Aufgabe, dummes Problem: getline(cin, str); on Sat, 19 Apr 2008 22:29:02 GMT]]></title><description><![CDATA[<p>MEETyA schrieb:</p>
<blockquote>
<p>Da in der Ausgabe ein \n fehlt, schätze ich das getline eben diese Leere Zeile eingelesen hat. Wie kann ich das verhindern/was mache ich falsch?</p>
</blockquote>
<p>Das ist so weit ich das nachvollziehen kann nicht die Ursache</p>
<p>MEETyA schrieb:</p>
<blockquote>
<p>Ein cin.clear(); vor der Ausführung des getlines hilft auch nicht.</p>
</blockquote>
<p>Wenn das nichts hilft versuche</p>
<pre><code class="language-cpp">cin.clear();
cin.ignore();
</code></pre>
<p>bzw. nur ignore.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494849</guid><dc:creator><![CDATA[long long double1]]></dc:creator><pubDate>Sat, 19 Apr 2008 22:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Aufgabe, dummes Problem: getline(cin, str); on Sun, 20 Apr 2008 12:12:55 GMT]]></title><description><![CDATA[<p>Eine Kombination aus beidem hat geholfen.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1495016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1495016</guid><dc:creator><![CDATA[MEETyA]]></dc:creator><pubDate>Sun, 20 Apr 2008 12:12:55 GMT</pubDate></item></channel></rss>