<?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[Datei lesen und schreiben (fstream)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich probier jetzt schon seit 2 Stunden den Fehler in meinem Progrämmchen zu finden, doch anscheinend bin ich zu blöd dafür.</p>
<p>Ich öffne eine Datei, lese sie aus, und versuche einen anderen Inhalt wieder reinzuschreiben. Doch das reinschreiben funktioniert nicht; nach dem angeblich erfoglreichen Schreibvorgang (keine Fehlermeldung) steht immer noch der alte Inhalt in der Datei.</p>
<p>Hier mal die relevanten Codeteile:</p>
<pre><code class="language-cpp">// (...)
		fstream file(argv[i],ios::in|ios::out); // Datei öffnen
		if (!file.is_open()) { cout &lt;&lt; &quot;Fehler: Datei konnte nicht geoeffnet werden!\n&quot;; continue; }
		while (getline(file,temp)) content += temp + &quot;\r\n&quot;;
// (...)
		content = ReplaceString(search,replace,content);
		cout &lt;&lt; &quot;\tGefunden: &quot; &lt;&lt; zaehler &lt;&lt; &quot;\n&quot;;
		file &lt;&lt; content;
		cout &lt;&lt; &quot;\tDatei geschrieben.\n&quot;;
		file.close();
// (...)
</code></pre>
<p>Einer eine Idee? Den Dateizeiger auf 0 Zeichen nach Beginn und dann schreiben bewirkt auch nichts...</p>
<p>Grüsse<br />
jeko</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162739/datei-lesen-und-schreiben-fstream</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 16:47:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162739.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Oct 2006 18:20:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei lesen und schreiben (fstream) on Sun, 22 Oct 2006 18:20:33 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich probier jetzt schon seit 2 Stunden den Fehler in meinem Progrämmchen zu finden, doch anscheinend bin ich zu blöd dafür.</p>
<p>Ich öffne eine Datei, lese sie aus, und versuche einen anderen Inhalt wieder reinzuschreiben. Doch das reinschreiben funktioniert nicht; nach dem angeblich erfoglreichen Schreibvorgang (keine Fehlermeldung) steht immer noch der alte Inhalt in der Datei.</p>
<p>Hier mal die relevanten Codeteile:</p>
<pre><code class="language-cpp">// (...)
		fstream file(argv[i],ios::in|ios::out); // Datei öffnen
		if (!file.is_open()) { cout &lt;&lt; &quot;Fehler: Datei konnte nicht geoeffnet werden!\n&quot;; continue; }
		while (getline(file,temp)) content += temp + &quot;\r\n&quot;;
// (...)
		content = ReplaceString(search,replace,content);
		cout &lt;&lt; &quot;\tGefunden: &quot; &lt;&lt; zaehler &lt;&lt; &quot;\n&quot;;
		file &lt;&lt; content;
		cout &lt;&lt; &quot;\tDatei geschrieben.\n&quot;;
		file.close();
// (...)
</code></pre>
<p>Einer eine Idee? Den Dateizeiger auf 0 Zeichen nach Beginn und dann schreiben bewirkt auch nichts...</p>
<p>Grüsse<br />
jeko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159136</guid><dc:creator><![CDATA[jeko]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen und schreiben (fstream) on Mon, 23 Oct 2006 06:27:51 GMT]]></title><description><![CDATA[<p>Erstens kannst du das &quot;\r&quot; in deinem Speicherstring bestimmt weglassen - die fstreams sorgen sich schon selber darum, daß es im richtigen Moment wieder auftraucht.</p>
<p>Zweitens: Versuch' mal, die Datei zwischendurch zu schließen und neu zu öffnen:</p>
<pre><code class="language-cpp">fstream file(argv[i],ios::in); // Datei öffnen
if (!file.is_open()) { cout &lt;&lt; &quot;Fehler: Datei konnte nicht geoeffnet werden!\n&quot;; continue; }
while (getline(file,temp)) content += temp + &quot;\n&quot;;
...
file.open(argv[i],ios::out|ios::trunc);
file&lt;&lt;content;
</code></pre>
<p>Dritten: Bist du sicher, daß sich überhaupt etwas am Inhalt geändert hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159297</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Oct 2006 06:27:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen und schreiben (fstream) on Mon, 23 Oct 2006 06:33:26 GMT]]></title><description><![CDATA[<p>Hallo,<br />
du musst nach dem Lesen und vor dem Schreiben die Fehlerbits des Streams löschen. Das geht durch den Aufruf von file.clear().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159301</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 23 Oct 2006 06:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen und schreiben (fstream) on Mon, 23 Oct 2006 10:22:23 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Erstens kannst du das &quot;\r&quot; in deinem Speicherstring bestimmt weglassen - die fstreams sorgen sich schon selber darum, daß es im richtigen Moment wieder auftraucht.</p>
<p>Zweitens: Versuch' mal, die Datei zwischendurch zu schließen und neu zu öffnen:</p>
<pre><code class="language-cpp">fstream file(argv[i],ios::in); // Datei öffnen
if (!file.is_open()) { cout &lt;&lt; &quot;Fehler: Datei konnte nicht geoeffnet werden!\n&quot;; continue; }
while (getline(file,temp)) content += temp + &quot;\n&quot;;
...
file.open(argv[i],ios::out|ios::trunc);
file&lt;&lt;content;
</code></pre>
<p>Dritten: Bist du sicher, daß sich überhaupt etwas am Inhalt geändert hat?</p>
</blockquote>
<p>Ob das Carriage und die Newline richtig ankommen war ich mir nicht sicher, ich kann es jedoch auch ohne mal ausprobieren, danke für den Tipp.</p>
<p>Die Datei zu schliessen habe ich glaub ich auch schon ausprobiert, führte zum gleichen Ergebnis, was mich auch sehr irritiert. Doch ich kanns auch ohne Probleme erneut versuchen.</p>
<p>Und drittens: Ja ich bin mir sicher, da ich mir den Inhalt von content beim Debugging natürlich auch schon mal vor und nach ReplaceString ausgeben lassen habe.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/110">@Humesikkins</a>: Dankesehr, das sieht schonmal sehr vielversprechend aus! Ich glaube dein Tipp könnte mich weiterbringen, dankeschön <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/1159394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159394</guid><dc:creator><![CDATA[jeko [nicht angemeldet]]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datei lesen und schreiben (fstream) on Mon, 23 Oct 2006 13:53:04 GMT]]></title><description><![CDATA[<p>Dankeschön Humesikkins, die Fehlerbits löschen war erfolgreich. Folgendes Codestück brachte also den Erfolg:</p>
<pre><code class="language-cpp">file.clear(); // Fehlerbits löschen
file.seekp(0,ios::beg); // Alles auf Anfang
file &lt;&lt; content;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1159598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159598</guid><dc:creator><![CDATA[jeko]]></dc:creator><pubDate>Mon, 23 Oct 2006 13:53:04 GMT</pubDate></item></channel></rss>