<?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[Unterschied zwischen getline() und read()]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich bin was C++ betrifft ziemlich am Anfang und habe dementsprechend auch eine absolute Anfängerfrage, auf die ich bisher aber noch keine Antwort gefunden habe:</p>
<p>Ich habe folgenden Code</p>
<pre><code>char puffer[]=&quot;hier ein paar zeichen um den puffer auf die richtige größe zu bekommen&quot;	 
ifstream f2(&quot;output.txt&quot;);
[b]f2.getline(puffer,sizeof(f2)/sizeof(char)),EOF);[/b]
[i][b]//f2.read(puffer,sizeof(f2)/sizeof(char));[/b][/i]
f2.close();     

ofstream f1(&quot;output.txt&quot;);;
f1 &lt;&lt; puffer &lt;&lt; &quot; noch mehr Text \n&quot;;
f1.close();
</code></pre>
<p>Ich möchte also eine Datei öffnen, ihren Inhalt in ein C-String einlesen, die Datei wieder schließen, erneut öffnen und den ursprünglichen Inhalt und neue Daten in die Datei schreiben. Benutze ich wie im Beispiel f2.getline() funktioniert alles. Versuche ich es jedoch mit read(), so wird die alte Datei überschrieben... Aus meinem Buch (&quot;C++ von A bis Z&quot; von Jürgen Wolf) geht das leider nicht klar hervor..<br />
Wo liegt denn der Unterschied zwischen read() und getline()?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201528/unterschied-zwischen-getline-und-read</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 01:32:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201528.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Dec 2007 12:26:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschied zwischen getline() und read() on Mon, 31 Dec 2007 12:43:39 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich bin was C++ betrifft ziemlich am Anfang und habe dementsprechend auch eine absolute Anfängerfrage, auf die ich bisher aber noch keine Antwort gefunden habe:</p>
<p>Ich habe folgenden Code</p>
<pre><code>char puffer[]=&quot;hier ein paar zeichen um den puffer auf die richtige größe zu bekommen&quot;	 
ifstream f2(&quot;output.txt&quot;);
[b]f2.getline(puffer,sizeof(f2)/sizeof(char)),EOF);[/b]
[i][b]//f2.read(puffer,sizeof(f2)/sizeof(char));[/b][/i]
f2.close();     

ofstream f1(&quot;output.txt&quot;);;
f1 &lt;&lt; puffer &lt;&lt; &quot; noch mehr Text \n&quot;;
f1.close();
</code></pre>
<p>Ich möchte also eine Datei öffnen, ihren Inhalt in ein C-String einlesen, die Datei wieder schließen, erneut öffnen und den ursprünglichen Inhalt und neue Daten in die Datei schreiben. Benutze ich wie im Beispiel f2.getline() funktioniert alles. Versuche ich es jedoch mit read(), so wird die alte Datei überschrieben... Aus meinem Buch (&quot;C++ von A bis Z&quot; von Jürgen Wolf) geht das leider nicht klar hervor..<br />
Wo liegt denn der Unterschied zwischen read() und getline()?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428520</guid><dc:creator><![CDATA[*johannes** 0]]></dc:creator><pubDate>Mon, 31 Dec 2007 12:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen getline() und read() on Mon, 31 Dec 2007 12:42:48 GMT]]></title><description><![CDATA[<p>schau mal was in deinem buch über sizeof steht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428525</guid><dc:creator><![CDATA[dann]]></dc:creator><pubDate>Mon, 31 Dec 2007 12:42:48 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen getline() und read() on Mon, 31 Dec 2007 12:44:35 GMT]]></title><description><![CDATA[<p>jo, ist mir auch gerade aufgefallen, ändert aber nix...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428526</guid><dc:creator><![CDATA[*johannes** 0]]></dc:creator><pubDate>Mon, 31 Dec 2007 12:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen getline() und read() on Mon, 31 Dec 2007 13:05:32 GMT]]></title><description><![CDATA[<p>Das Problem liegt bei der Verwendung von sizeof( f2 )<br />
Der Rückgabewert ist die Größe der Klasse ifstream -&gt; 140</p>
<p>f2.getline(puffer,sizeof(f2),EOF);<br />
-&gt; du versuchst 140 Zeichen von f2 zu lesen, oder hörst auf wenn EOF kommt. Scheinbar sind in deiner Datei weniger als 140 Zeichen drinnen und es klappt alles.</p>
<p>f2.read(puffer,sizeof(f2));<br />
-&gt; du versuchts auf Biegen und Brechen 140 Zeichen zu lesen, scheinbar geht der stream dabei kaputt oder du liest mist.</p>
<p>Versuche es doch einmal mit:<br />
char puffer[120] = { 0 };<br />
f2.read( puffer, sizeof( puffer ) );</p>
<p>das sollte funktionieren - zumindestens bei mir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428535</guid><dc:creator><![CDATA[mugglemaster]]></dc:creator><pubDate>Mon, 31 Dec 2007 13:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen getline() und read() on Mon, 31 Dec 2007 13:16:18 GMT]]></title><description><![CDATA[<p>tausend dank!<br />
habs verstanden, muss erst langsam lernen wie ein Computer zu denken und nich wie ein normaler Mensch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428542</guid><dc:creator><![CDATA[*johannes** 0]]></dc:creator><pubDate>Mon, 31 Dec 2007 13:16:18 GMT</pubDate></item></channel></rss>