<?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[Einlesen eines Strings mit Leerzeichen macht Probleme]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein kleines Problem. Ich versuche verschiedene Zahlen und Zeichen einzulesen, doch ab einer Stelle, da läuft das Programm einfach runter, ohne auf Eingaben zu warten:</p>
<pre><code class="language-cpp">char zeichen;
string wort;
float fzahlhex, fzahlokt;
cout &lt;&lt; &quot;Geben Sie ein Zeichen ein:         &quot;;
cin &gt;&gt; zeichen;
cout &lt;&lt; &quot;Geben Sie ein Wort ein:            &quot;;
getline(cin,wort) &gt;&gt; wort; //Wenn das Wort Leerzeichen hat, dann werden einfach die nächsten beiden Ausgaben gemacht, aber ich kann keine Eingabe mehr machen.
cout &lt;&lt; &quot;Geben Sie eine Oktalzahl ein:      &quot;;
cin &gt;&gt; oct &gt;&gt; fzahlokt;
cout &lt;&lt; &quot;Geben Sie eine Hexadezimalzahl ein &quot;;
cin &gt;&gt; hex &gt;&gt; fzahlhex;
</code></pre>
<p>Das passiert nur wenn Leerzeichen vorhanden sind. Aber getline() ist doch gerade dafür da. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Mister Getline()</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247382/einlesen-eines-strings-mit-leerzeichen-macht-probleme</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 13:56:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247382.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Aug 2009 10:31:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 10:31:04 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein kleines Problem. Ich versuche verschiedene Zahlen und Zeichen einzulesen, doch ab einer Stelle, da läuft das Programm einfach runter, ohne auf Eingaben zu warten:</p>
<pre><code class="language-cpp">char zeichen;
string wort;
float fzahlhex, fzahlokt;
cout &lt;&lt; &quot;Geben Sie ein Zeichen ein:         &quot;;
cin &gt;&gt; zeichen;
cout &lt;&lt; &quot;Geben Sie ein Wort ein:            &quot;;
getline(cin,wort) &gt;&gt; wort; //Wenn das Wort Leerzeichen hat, dann werden einfach die nächsten beiden Ausgaben gemacht, aber ich kann keine Eingabe mehr machen.
cout &lt;&lt; &quot;Geben Sie eine Oktalzahl ein:      &quot;;
cin &gt;&gt; oct &gt;&gt; fzahlokt;
cout &lt;&lt; &quot;Geben Sie eine Hexadezimalzahl ein &quot;;
cin &gt;&gt; hex &gt;&gt; fzahlhex;
</code></pre>
<p>Das passiert nur wenn Leerzeichen vorhanden sind. Aber getline() ist doch gerade dafür da. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Mister Getline()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758182</guid><dc:creator><![CDATA[Mister Getline()]]></dc:creator><pubDate>Mon, 10 Aug 2009 10:31:04 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 10:49:44 GMT]]></title><description><![CDATA[<p>Nimm</p>
<pre><code class="language-cpp">getline(cin,wort)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1758190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758190</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Aug 2009 10:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 10:56:07 GMT]]></title><description><![CDATA[<p>Ups, was ein Fehler. Aber das Programm läuft immer noch weiter. Nachdem ich das Zeichen eingegen habe, wird &quot;Bitte geben Sie ein Wort ein&quot; und danach sofort &quot;Bitte geben Sie eine Oktalzahl ein&quot; ausgegeben.</p>
<p>Warum? Ich will doch mein Wort eingeben.</p>
<p>Mister Getline()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758192</guid><dc:creator><![CDATA[Mister Getline()]]></dc:creator><pubDate>Mon, 10 Aug 2009 10:56:07 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 12:42:05 GMT]]></title><description><![CDATA[<p>Ahh, da wird anscheinend durch das cin &gt;&gt; char zwar ein Zeichen gelesen, das newline Zeichen, mit der man die Eingabe abschließt, scheint aber im stream zu bleiben (wusste ich bis jetzt auch nicht, dass das so ist). Dagegen hilft es, das folgende newline Zeichen zu ignorieren:</p>
<pre><code class="language-cpp">char zeichen;
string wort;
float fzahlhex, fzahlokt;
cout &lt;&lt; &quot;Geben Sie ein Zeichen ein:         &quot;;
cin &gt;&gt; zeichen;
cin.ignore(1,'\n');
cout &lt;&lt; &quot;Geben Sie ein Wort ein:            &quot;;
getline(cin,wort); 
cout &lt;&lt; &quot;Geben Sie eine Oktalzahl ein:      &quot;;
cin &gt;&gt; oct &gt;&gt; fzahlokt;
cout &lt;&lt; &quot;Geben Sie eine Hexadezimalzahl ein &quot;;
cin &gt;&gt; hex &gt;&gt; fzahlhex;
</code></pre>
<p>edit: Noch eine Anmerkung: hex und oct wirken nur auf Integertypen, Gleitkommazahlen werden immer als base10 behandelt. Willst du Gleitkommazahlen in anderen Basen verwenden, musst du das wohl selbst implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758248</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Aug 2009 12:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 12:42:21 GMT]]></title><description><![CDATA[<p>Hallo,<br />
dazu habe ich auch mal eine Frage:</p>
<p>Wenn ich einfach ein Zeichen eingebe, warum bleibt dann das newline Zeichen im stream stecken? Da ist doch gar keins??ß</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758260</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 10 Aug 2009 12:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 13:03:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18082">@freakC</a>++: Ob du wohl die Enter-Taste drückst <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/1758278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758278</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 13:13:16 GMT]]></title><description><![CDATA[<p>Don06 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18082">@freakC</a>++: Ob du wohl die Enter-Taste drückst <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>
</blockquote>
<p>Entertaste != Newline;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758289</guid><dc:creator><![CDATA[entertast0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to Einlesen eines Strings mit Leerzeichen macht Probleme on Mon, 10 Aug 2009 13:14:47 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ahh, da wird anscheinend durch das cin &gt;&gt; char zwar ein Zeichen gelesen, das newline Zeichen, mit der man die Eingabe abschließt, scheint aber im stream zu bleiben (wusste ich bis jetzt auch nicht, dass das so ist). Dagegen hilft es, das folgende newline Zeichen zu ignorieren:</p>
<pre><code class="language-cpp">char zeichen;
string wort;
float fzahlhex, fzahlokt;
cout &lt;&lt; &quot;Geben Sie ein Zeichen ein:         &quot;;
cin &gt;&gt; zeichen;
cin.ignore(1,'\n');
cout &lt;&lt; &quot;Geben Sie ein Wort ein:            &quot;;
getline(cin,wort); 
cout &lt;&lt; &quot;Geben Sie eine Oktalzahl ein:      &quot;;
cin &gt;&gt; oct &gt;&gt; fzahlokt;
cout &lt;&lt; &quot;Geben Sie eine Hexadezimalzahl ein &quot;;
cin &gt;&gt; hex &gt;&gt; fzahlhex;
</code></pre>
<p>edit: Noch eine Anmerkung: hex und oct wirken nur auf Integertypen, Gleitkommazahlen werden immer als base10 behandelt. Willst du Gleitkommazahlen in anderen Basen verwenden, musst du das wohl selbst implementieren.</p>
</blockquote>
<p>Das funzt bei mir nicht richtig. So gehts aber:</p>
<pre><code class="language-cpp">void clb() // Clear buffer :)
{
	cin.clear(); 
	cin.ignore(numeric_limits&lt;streamsize&gt;::max(), '\n'); 
}

int main( )
{
	char zeichen; 
string wort; 
float fzahlhex, fzahlokt; 
cout &lt;&lt; &quot;Geben Sie ein Zeichen ein:         &quot;; 
cin &gt;&gt; zeichen; 
clb();
cout &lt;&lt; &quot;Geben Sie ein Wort ein:            &quot;; 
clb();
cout &lt;&lt; &quot;Geben Sie eine Oktalzahl ein:      &quot;; 
cin &gt;&gt; oct &gt;&gt; fzahlokt; 
clb();
cout &lt;&lt; &quot;Geben Sie eine Hexadezimalzahl ein &quot;; 
cin &gt;&gt; hex &gt;&gt; fzahlhex; 

	return 0;	
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1758291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758291</guid><dc:creator><![CDATA[funz0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:14:47 GMT</pubDate></item></channel></rss>