<?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 beim lesen von istream]]></title><description><![CDATA[<p>das folgende soll einen int von einem istream lesen</p>
<p>wenn man jetzt z.B &quot;4,&quot; eingibt, liefert er jedoch nicht 4 als ergebnis, sondern irgendeinen krempel</p>
<p>bei eingaben wie &quot;4;&quot;, &quot;4k&quot;, ... läuft alles korrekt ..</p>
<pre><code>int readInt(std::istream&amp; in)
{
	removeWhitespace(in);

	char ch;
	in.get(ch);

	std::cout &lt;&lt; ch;

	// TODO
	if (!std::isdigit(ch))
		throw &quot;shit&quot;;

	in.putback(ch);
	int i;
	in &gt;&gt; i;

	std::cout &lt;&lt; i;

	return i;
}
</code></pre>
<p>die ausgaben sind zur kontrolle dadrin</p>
<p>der char ch liefert den korrekten char wert<br />
der int i ist dann aber schon komplett falsch ...</p>
<p>einfach einen int einlesen geht nicht, da ich auf newline besonders reagieren will...</p>
<p>PS: ich weiß nicht, obs relevant ist: ich benutze visual studio 2005 professional (msdnaa)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264038/probleme-beim-lesen-von-istream</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:40:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264038.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Mar 2010 18:26:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 18:26:08 GMT]]></title><description><![CDATA[<p>das folgende soll einen int von einem istream lesen</p>
<p>wenn man jetzt z.B &quot;4,&quot; eingibt, liefert er jedoch nicht 4 als ergebnis, sondern irgendeinen krempel</p>
<p>bei eingaben wie &quot;4;&quot;, &quot;4k&quot;, ... läuft alles korrekt ..</p>
<pre><code>int readInt(std::istream&amp; in)
{
	removeWhitespace(in);

	char ch;
	in.get(ch);

	std::cout &lt;&lt; ch;

	// TODO
	if (!std::isdigit(ch))
		throw &quot;shit&quot;;

	in.putback(ch);
	int i;
	in &gt;&gt; i;

	std::cout &lt;&lt; i;

	return i;
}
</code></pre>
<p>die ausgaben sind zur kontrolle dadrin</p>
<p>der char ch liefert den korrekten char wert<br />
der int i ist dann aber schon komplett falsch ...</p>
<p>einfach einen int einlesen geht nicht, da ich auf newline besonders reagieren will...</p>
<p>PS: ich weiß nicht, obs relevant ist: ich benutze visual studio 2005 professional (msdnaa)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876127</guid><dc:creator><![CDATA[thorondir]]></dc:creator><pubDate>Wed, 31 Mar 2010 18:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 18:41:58 GMT]]></title><description><![CDATA[<p>Ich entnehme deinem Text, dass dies keine Übungsaufgabe ist, sondern dass du ein spezifisches Problem lösen willst. Beschreib mal dein Problem, denn dein Ansatz ist fast sicher falsch - iostreams setzt man eigentlich anders ein.</p>
<p>Ich glaube Werner Salomon hatte hier mal ein schönes Beispiel gezeigt, wie man iostreams nach den eigenen Wünschen zurecht biegt, leider finde ich es gerade mit der Forumssuche nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876134</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 31 Mar 2010 18:41:58 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 18:48:35 GMT]]></title><description><![CDATA[<p>ich möchte eine liste von csv einlesen, wobei die zeilen jedoch nicht gleich lang sein müssen.</p>
<p>nachtrag zu dem problem: es schein ein bug mit visual studio compiler zu sein, da, wenn ich als output release einstelle, klappt es ... mit debug aber nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876137</guid><dc:creator><![CDATA[thorondir]]></dc:creator><pubDate>Wed, 31 Mar 2010 18:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 18:59:42 GMT]]></title><description><![CDATA[<p>Geht doch viel einfacher?!</p>
<pre><code class="language-cpp">char c;
int i;
std::cin.get(c);
if(std::isdigit(c))
   i = c - 48;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1876139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876139</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Wed, 31 Mar 2010 18:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 19:00:05 GMT]]></title><description><![CDATA[<p>thorondir schrieb:</p>
<blockquote>
<p>ich möchte eine liste von csv einlesen, wobei die zeilen jedoch nicht gleich lang sein müssen.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> csv ist doch ziemlich gut mit den Standardmethoden lesbar. Wo ist dein Problem?</p>
<blockquote>
<p>nachtrag zu dem problem: es schein ein bug mit visual studio compiler zu sein, da, wenn ich als output release einstelle, klappt es ... mit debug aber nicht</p>
</blockquote>
<p>Merke: Wenn du denkst, dass du einen Bug in einem Compiler gefunden hast, dann hat <strong>dein</strong> Programm einen Fehler. In den Compilern stecken hunderte oder gar tausende von Mannjahren an Entwicklung und Fehlersuche. Glaubst du wirklich, dass ausgerechnet <strong>du</strong> zufällig über einen unbekannten Compilerfehler gestolpert bist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876140</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 31 Mar 2010 19:00:05 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 19:12:08 GMT]]></title><description><![CDATA[<p>Ich weiß nicht, was ich falsch machen soll, aber folgendes programm liefert bei mir folgende ausgabe (wenn ich es in debug kompiliere):</p>
<blockquote>
<p>4, &lt;-- eingabe, komma am ende<br />
-858993460</p>
</blockquote>
<pre><code>#include &lt;iostream&gt;

int main(int, char**)
{
	int i;
	std::cin &gt;&gt; i;

	std::cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;

}
</code></pre>
<p>in release funktioniert es und mit auch mit allem anderen als dem komma hinter der zahl ...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5255">@ad</a> acta: die zahlen sind normalerweise größer als eine ziffer ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876142</guid><dc:creator><![CDATA[thorondir]]></dc:creator><pubDate>Wed, 31 Mar 2010 19:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 19:13:45 GMT]]></title><description><![CDATA[<p>PS: nachtrag: kann auch sein, dass der bug schon behoben ist, weil mein VS ist nicht up to date - müsste ich mal machen, aber der patch der zur verfügung steht ist etwas zu groß für meine aktuelle internet anbindung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876143</guid><dc:creator><![CDATA[thorondir]]></dc:creator><pubDate>Wed, 31 Mar 2010 19:13:45 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 20:54:25 GMT]]></title><description><![CDATA[<p>thorondir schrieb:</p>
<blockquote>
<p>Ich weiß nicht, was ich falsch machen soll, aber folgendes programm liefert bei mir folgende ausgabe (wenn ich es in debug kompiliere):</p>
<blockquote>
<p>4, &lt;-- eingabe, komma am ende<br />
-858993460</p>
</blockquote>
</blockquote>
<p>Ich kann mich dunkel erinnern, dass es da mal einen Fehler in einer 'frischen' VC-Version gab, wo ein folgendes ',' als 1000-Trennzeichen interpretiert wurde. Das ist aber schon ein paar Jahre her - also das kann VC2005 gewesen sein.</p>
<p>thorondir schrieb:</p>
<blockquote>
<pre><code>#include &lt;iostream&gt;

int main(int, char**)
{
	int i;
	std::cin &gt;&gt; i;

	std::cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
}
</code></pre>
<p>in release funktioniert es und mit auch mit allem anderen als dem komma hinter der zahl ...</p>
</blockquote>
<p>grundsätzlich solltest Du nach dem das Einlesen beendet ist, den istream nochmal auf Fehler testen, Ansonsten ist die Ausgabe von 'i' sinnlos.</p>
<p>thorondir schrieb:</p>
<blockquote>
<p>wenn man jetzt z.B &quot;4,&quot; eingibt, liefert er jedoch nicht 4 als ergebnis, sondern irgendeinen krempel</p>
<p>bei eingaben wie &quot;4;&quot;, &quot;4k&quot;, ... läuft alles korrekt ..</p>
<pre><code>int readInt(std::istream&amp; in)
{
	removeWhitespace(in);
	
	char ch;
	in.get(ch);

	std::cout &lt;&lt; ch;

	// TODO
	if (!std::isdigit(ch))
		throw &quot;shit&quot;;

	in.putback(ch);
	int i;
	in &gt;&gt; i;

	std::cout &lt;&lt; i;

	return i;
}
</code></pre>
</blockquote>
<p>es ist nicht selbstverständlich, dass eine std::istream putback korekt bearbeitet, also besser danach den istream auf !fail() testen.</p>
<p>thorondir schrieb:</p>
<blockquote>
<p>einfach einen int einlesen geht nicht, da ich auf newline besonders reagieren will...</p>
</blockquote>
<p>deshalb kannst Du trotzdem einfach ein int lesen. Wenn Du auf Zeilenende prüfen möchte, so hilft Dir vielleicht <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1484877.html#1484877" rel="nofollow">dies</a> weiter.</p>
<p>Ansonsten beschreibe doch das Format, welches Du lesen willst. Dann kann man konkrete Hilfestellung geben.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876190</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 31 Mar 2010 20:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to probleme beim lesen von istream on Wed, 31 Mar 2010 22:24:19 GMT]]></title><description><![CDATA[<p>Danke für den Link und die tipps/hiweise bzgl testen auf fehler.</p>
<p>Der Code hilft mir weiter, bzw dadurch sollte das programm deutlich einfacher werden <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/1876204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876204</guid><dc:creator><![CDATA[thorondir]]></dc:creator><pubDate>Wed, 31 Mar 2010 22:24:19 GMT</pubDate></item></channel></rss>