<?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[Frage zu cin.get()]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe hier ein kleines Programm, dass binäre Zahlen in Dezimalzahlen umwandelt:</p>
<pre><code class="language-cpp">int main()
{
	char c=0;
	int result=0;

	cout &lt;&lt; &quot;Geben Sie eine binaere Zahl ein: &quot;;
	while(cin.get(c) &amp;&amp; (c=='0' || c=='1'))
	{
		result*=2;
		if (c=='1')
			++result;
	}
	cout &lt;&lt; &quot;\nDer dezimale Wert: &quot; &lt;&lt; result &lt;&lt; endl;

	return 0; 
}
</code></pre>
<p>Ich dachte, dass ich mit cin.get() genau ein Zeichen einlesen kann. Hier gebe ich aber mehrere Zeichen ein (eine mehrstellige Binärzahl). Bedeutet das, dass cin.get() in einer Schleife die Zeichen durchgeht. Wenn ja, dann muss aber doch auch irgendwo die Position gespeichert werden. Wenn das stimmt, wo wird sie denn gespeichert?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247739/frage-zu-cin-get</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 11:30:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247739.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Aug 2009 18:00:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 18:00:13 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe hier ein kleines Programm, dass binäre Zahlen in Dezimalzahlen umwandelt:</p>
<pre><code class="language-cpp">int main()
{
	char c=0;
	int result=0;

	cout &lt;&lt; &quot;Geben Sie eine binaere Zahl ein: &quot;;
	while(cin.get(c) &amp;&amp; (c=='0' || c=='1'))
	{
		result*=2;
		if (c=='1')
			++result;
	}
	cout &lt;&lt; &quot;\nDer dezimale Wert: &quot; &lt;&lt; result &lt;&lt; endl;

	return 0; 
}
</code></pre>
<p>Ich dachte, dass ich mit cin.get() genau ein Zeichen einlesen kann. Hier gebe ich aber mehrere Zeichen ein (eine mehrstellige Binärzahl). Bedeutet das, dass cin.get() in einer Schleife die Zeichen durchgeht. Wenn ja, dann muss aber doch auch irgendwo die Position gespeichert werden. Wenn das stimmt, wo wird sie denn gespeichert?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1760969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1760969</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 14 Aug 2009 18:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 18:04:10 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/iostream/istream/tellg/" rel="nofollow">http://www.cplusplus.com/reference/iostream/istream/tellg/</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1760971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1760971</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 14 Aug 2009 18:04:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 18:14:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main( )
{
	cout &lt;&lt; &quot;Geben Sie eine irgendwelche Zeichen ein und drückern Sie ENTER!&quot;; 
    while(cin.get(c)) 
    	cout &lt;&lt; cin.tellg() &lt;&lt; endl;
	return 0;	
}
</code></pre>
<p>Eingabe: aaa<br />
Ausgabe:<br />
-1<br />
-1<br />
-1</p>
<p>Grüzzi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1760977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1760977</guid><dc:creator><![CDATA[tellgett0r]]></dc:creator><pubDate>Fri, 14 Aug 2009 18:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 18:16:45 GMT]]></title><description><![CDATA[<p>Also hatte ich recht....das erfreut micht!</p>
<p>Danke, Dravere!</p>
<p>lg, freakC++</p>
<p>und natürlich danke, tellgett0r! Ich verstehe aber nicht die Ausgabe. Warum bleibt die Zahl konstant? Hatte ich etwa doch nicht recht? Ich muss nochmal den Link studieren!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1760978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1760978</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 14 Aug 2009 18:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 18:32:16 GMT]]></title><description><![CDATA[<p>cin.get(c) liest immer nur ein zeichen ein, nachdem enter gedrückt wurde.<br />
wurden mehrere zeichen eingegeben, wird die while schleife solange aufgerufen, bis sich cin.get(c) ein '\n' holt, dann ist schluss und die while schleife wird verlassen.<br />
die position scheint hier tellget nicht zu jucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1760984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1760984</guid><dc:creator><![CDATA[tellgett0r]]></dc:creator><pubDate>Fri, 14 Aug 2009 18:32:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 19:51:42 GMT]]></title><description><![CDATA[<p>Was bedeutet das denn: &quot;bis sich cin.get(c) ein '\n' holt&quot;?? Wenn ich das hier schreibe:</p>
<pre><code class="language-cpp">char c;
while(cin.get(c))
 cout.put(c);
</code></pre>
<p>dann gibt es der Schleife kein Entrinnen. So wie ich dich verstanden habe, müsste aber die Schleife verlassen werden, wenn &quot;ein \n geholt wird&quot;. Wann wird denn ein &quot;Neue Zeile&quot; geholt? Das erreiche ich mit Enter und das wird als Eingabe interpretiert.</p>
<p>Wo liegt mein Denkfehler?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
<p>Noch als Ergänzung: Wenn ich wirklich will, dass die Schleife bei \n verlassen wird, dann müsste ich doch das hier schreiben:</p>
<pre><code class="language-cpp">while(cin.get(c) &amp;&amp; c!='\n')
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1761020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1761020</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 14 Aug 2009 19:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 20:16:19 GMT]]></title><description><![CDATA[<p>man muss enter drücken damit die eingegebenen zeichen in den buffer geschrieben werden. Davon liest cin.get() genau ein zeichen und gibt es zurück</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1761043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1761043</guid><dc:creator><![CDATA[player4245]]></dc:creator><pubDate>Fri, 14 Aug 2009 20:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu cin.get() on Fri, 14 Aug 2009 20:22:36 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>So wie ich dich verstanden habe, müsste aber die Schleife verlassen werden, wenn &quot;ein \n geholt wird&quot;.</p>
</blockquote>
<p>Ja, sorry, habe ich falsch ausgedrückt. Ich meinte, das die Schleife unterbrochen wird.</p>
<pre><code class="language-cpp">char c; 
	cout &lt;&lt; &quot;Geben Sie eine irgendwelche Zeichen ein und drücken Sie ENTER!&quot;; 
    while( cin.get(c) ) 
	{
        if ( c == '\n' )
			cout &lt;&lt; &quot;Achtung! Die Schleife stoppt gleich!&quot; &lt;&lt; endl;
			cout &lt;&lt; c &lt;&lt; endl; 
		if ( c == '\n' )
			cout &lt;&lt; &quot;Die Schleife wurde gestoppt!&quot; &lt;&lt; endl;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1761048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1761048</guid><dc:creator><![CDATA[tellgett0r]]></dc:creator><pubDate>Fri, 14 Aug 2009 20:22:36 GMT</pubDate></item></channel></rss>