<?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[Problem mit ifstream.getline()]]></title><description><![CDATA[<p>Ich lese alle Zeile hintereinander ein und speichere sie in einen Deque:</p>
<pre><code class="language-cpp">char *buffer = new char[1024];
        while(fin.getline(buffer,1024))
        {
            std::cout &lt;&lt; buffer &lt;&lt; std::endl;
            Datei.push_back(buffer);
        }
</code></pre>
<p>Wenn jetzt aber in der Datei eine Zeile länger als 1024 Zeichen ist, bricht das Programm ab und im deque sind nur noch die Zeilen vor dieser Zeile. Wie kann ich machen, das die entsprechende Zeile trotzdem eingelesen wird, allerdings, dass sie nach 1024 zu ende ist (oder so was, auf jeden fall nicht, dass das programm dann abbricht)?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130883/problem-mit-ifstream-getline</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 19:01:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130883.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Dec 2005 14:19:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit ifstream.getline() on Wed, 28 Dec 2005 14:19:27 GMT]]></title><description><![CDATA[<p>Ich lese alle Zeile hintereinander ein und speichere sie in einen Deque:</p>
<pre><code class="language-cpp">char *buffer = new char[1024];
        while(fin.getline(buffer,1024))
        {
            std::cout &lt;&lt; buffer &lt;&lt; std::endl;
            Datei.push_back(buffer);
        }
</code></pre>
<p>Wenn jetzt aber in der Datei eine Zeile länger als 1024 Zeichen ist, bricht das Programm ab und im deque sind nur noch die Zeilen vor dieser Zeile. Wie kann ich machen, das die entsprechende Zeile trotzdem eingelesen wird, allerdings, dass sie nach 1024 zu ende ist (oder so was, auf jeden fall nicht, dass das programm dann abbricht)?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951479</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 14:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.getline() on Wed, 28 Dec 2005 14:41:28 GMT]]></title><description><![CDATA[<p>Probier mal dass:</p>
<pre><code class="language-cpp">char *buffer = new char[1024];
        while(fin.getline(buffer,1024))
        {
            std::cout &lt;&lt; buffer &lt;&lt; std::endl;
            Datei.push_back(buffer);
            if (fin.fail())
            {
               std::cout &lt;&lt; &quot;Zeile &gt; 1024&quot; &lt;&lt; endl;
               fin.clear();
            }
        }
</code></pre>
<p>Liest fin nämlich die angegebene Anzahl Zeichen und ist noch nicht auch ein Zeilenende gestoßen, wird das failbit gesetzt. Ich denke deshalb macht er nicht mehr weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951490</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 28 Dec 2005 14:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.getline() on Wed, 28 Dec 2005 14:41:54 GMT]]></title><description><![CDATA[<pre><code>std::string buffer;
        while(std::getline(fin, buffer))
        {
            std::cout &lt;&lt; buffer &lt;&lt; std::endl;
            Datei.push_back(buffer);
        }
</code></pre>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951491</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 28 Dec 2005 14:41:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.getline() on Wed, 28 Dec 2005 15:15:49 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<pre><code>std::string buffer;
        while(std::getline(fin, buffer))
        {
            std::cout &lt;&lt; buffer &lt;&lt; std::endl;
            Datei.push_back(buffer);
        }
</code></pre>
<p>Tommi</p>
</blockquote>
<p>Stimmt, das geht. Aber warum steht das nicht in der Referenz???</p>
<p>Naja, andere frage: Ich möchte bis zu einem bestimmten zeichen auslesen.</p>
<pre><code class="language-cpp">while(fin.get(buffer,1024,'-'))
        {
            Datei.push_back(buffer);
        }
</code></pre>
<p>Aber sobald er auf das zeichen trifft, bricht die schleife ab, also er führt die schleife nur einmal aus. Warum das denn?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951514</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ifstream.getline() on Wed, 28 Dec 2005 17:47:02 GMT]]></title><description><![CDATA[<p>Keiner eine Idee? Denn das Problem bereitet mir gerade starke Kopfschmerzen, weil ich da einfach nicht weiter komme.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951615</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 17:47:02 GMT</pubDate></item></channel></rss>