<?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[Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich habe das Problem, dass ich eine Datei auslesen möchte. Allerdings zeigt er mir nur an, was vor einem Leer- oder Eingabezeichen steht.</p>
<pre><code class="language-cpp">datei_lieferanten.open(&quot;lieferanten.txt&quot;, ios::in);
		datei_lieferanten &gt;&gt;  lieferanten;
		datei_lieferanten.close();
		printf_s(&quot;%s&quot;, lieferanten);
</code></pre>
<p>Das SChreiben in die datei funktioniert jedoch wie gewünscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273943/ekinlesen-von-datei-bricht-nach-leerzeichen-oder-eingabezeichen-ab</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:55:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273943.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Sep 2010 07:16:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 07:16:41 GMT]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich habe das Problem, dass ich eine Datei auslesen möchte. Allerdings zeigt er mir nur an, was vor einem Leer- oder Eingabezeichen steht.</p>
<pre><code class="language-cpp">datei_lieferanten.open(&quot;lieferanten.txt&quot;, ios::in);
		datei_lieferanten &gt;&gt;  lieferanten;
		datei_lieferanten.close();
		printf_s(&quot;%s&quot;, lieferanten);
</code></pre>
<p>Das SChreiben in die datei funktioniert jedoch wie gewünscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953242</guid><dc:creator><![CDATA[Basinator]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:16:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 07:31:31 GMT]]></title><description><![CDATA[<p>Was ist Lieferanten? Ein char-Array? Dann ist dies das erwartete Verhalten, denn der Operator &gt;&gt; trennt normalerweise alles nach Whitespaces auf (und lässt diese selbst auch ganz weg). Das ist ja gerade der Sinn der formatierten Eingabeaktionen. Wenn du dies nicht möchtest, benutz unformatierte Eingaben oder lies direkt in einen Streambuf ein(da wird standardmäßig alles auf einmal eingelesen). Du möchtest ja anscheinend die ganze Datei auf einmal einlesen und ausgeben - praktischerweise gibt es ja schon einen Ausgabestream und dieser hat natürlich auch einen Streambuf:</p>
<pre><code class="language-cpp">ifstream lieferanten(&quot;lieferanten.txt&quot;);
  lieferanten &gt;&gt; cout.rdbuf();
</code></pre>
<p>Und noch etwas: Wenn du als Anfänger in einem C++-Programm printf oder char-Arrays benutzt, machst du normalerweise etwas grundlegend falsch. Nutze die C++-Mittel. Die Sprachmittel von C und von C++ vertragen sich nämlich nicht so gut, mit einer Mischung bekommst du bloß Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953249</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 07:34:41 GMT]]></title><description><![CDATA[<p>:: glaskugel an , da wichtige Informationen wie zB die Typen von <code>datei_lieferanten</code> und <code>lieferanten</code> fehlen ::</p>
<p>Schau dir mal die Beschreibung der &lt;&lt; &gt;&gt; an. Ist das eine ein <code>ifstream</code> und das andere ein <code>std::string</code> könnte es möglicherweise so sein das der einfach nur bis zum ersten whitespace liest? Da gibts auch sowas das nennt sich getline() ...</p>
<p><a href="http://www.cplusplus.com/reference/iostream/ifstream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ifstream/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953250</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:34:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 07:54:42 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Was ist Lieferanten? Ein char-Array? Dann ist dies das erwartete Verhalten, denn der Operator &gt;&gt; trennt normalerweise alles nach Whitespaces auf (und lässt diese selbst auch ganz weg). Das ist ja gerade der Sinn der formatierten Eingabeaktionen. Wenn du dies nicht möchtest, benutz unformatierte Eingaben oder lies direkt in einen Streambuf ein(da wird standardmäßig alles auf einmal eingelesen). Du möchtest ja anscheinend die ganze Datei auf einmal einlesen und ausgeben - praktischerweise gibt es ja schon einen Ausgabestream und dieser hat natürlich auch einen Streambuf:</p>
<pre><code class="language-cpp">ifstream lieferanten(&quot;lieferanten.txt&quot;);
  lieferanten &gt;&gt; cout.rdbuf();
</code></pre>
</blockquote>
<p>Hatte das jetzt so geändert:</p>
<pre><code class="language-cpp">case 2:
		datei_lieferanten.open(&quot;lieferanten.txt&quot;, ios::in);
		datei_lieferanten &gt;&gt;  lieferanten;
		ifstream lieferanten(&quot;lieferanten.txt&quot;); 
		lieferanten &gt;&gt; cout.rdbuf(); 
		datei_lieferanten.close();
		printf_s(&quot;%s&quot;, lieferanten);
		break;
</code></pre>
<p>Erhalte jedoch den Fehler:<br />
Fehler 1 error C2360: Initialisierung von 'lieferanten' durch 'case'-Marke übersprungen z:\eigene dateien\visual studio 2005\projects\projektmappe\uebungsprojekt2_09-09-10\uebungsprojekt.cpp 79</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953258</guid><dc:creator><![CDATA[Basinator]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:54:42 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 08:03:06 GMT]]></title><description><![CDATA[<p>So geht's (Klammern!):</p>
<p>Basinator schrieb:</p>
<blockquote>
<pre><code class="language-cpp">case 2:
    {
 	datei_lieferanten.open(&quot;lieferanten.txt&quot;, ios::in);
 	datei_lieferanten &gt;&gt;  lieferanten;
 	ifstream lieferanten(&quot;lieferanten.txt&quot;); 
 	lieferanten &gt;&gt; cout.rdbuf(); 
 	datei_lieferanten.close();
 	printf_s(&quot;%s&quot;, lieferanten);
 	break;
    }
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1953259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953259</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 16 Sep 2010 08:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 08:17:10 GMT]]></title><description><![CDATA[<p>Hm, ohne den ifstrem geht es komischerweise auch ohne.</p>
<p>Allerdings wird scheinbar das erste Wort bei der Ausgabe abgeschnitten, in der Textdatei ist es vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953263</guid><dc:creator><![CDATA[Basinator]]></dc:creator><pubDate>Thu, 16 Sep 2010 08:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to Ekinlesen von Datei bricht nach Leerzeichen oder Eingabezeichen ab on Thu, 16 Sep 2010 09:01:35 GMT]]></title><description><![CDATA[<p>Basinator schrieb:</p>
<blockquote>
<p>Hm, ohne den ifstrem geht es komischerweise auch ohne.</p>
</blockquote>
<p>Das macht auch Sinn so. Die Lebensdauer einer Variable wird immer über ihren Scope definiert, und der wird nunmal über geschweifte Klammern festgelegt. Wenn du nun eine Variable einfach so unter einem case deklarierst, dann kann diese Deklaration je nach Verlauf des Programms übersprungen werden. Eine eventuelle Nutzung der Variable weiter unten wäre dann ja gar nicht möglich. Daher musst du explizit sagen, dass die Variable nur in diesem case-Zweig existieren soll. Denn so ein case-Statement ist nur eine Sprungmarke, weniger ein Block, bei dem Anfang und Ende fest definiert sind (z.B. kann ja von einem in den nächsten case-Zweig übergegangen werden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953274</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 16 Sep 2010 09:01:35 GMT</pubDate></item></channel></rss>