<?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[std::fstream output Problem]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für mein Projekt aus einer txt Datei einen bestimmten Datensatz ändern.</p>
<p>Meine derzeitige Funktion.</p>
<pre><code class="language-cpp">void TxtReader::Replace(std::string value, std::string text){
    std::fstream m_file;
    m_file.open(m_path.c_str(), std::ios::out | std::ios::in);
    std::string buffer;
    while(!m_file.eof()){
        std::getline(m_file, buffer);
        if(buffer == value){
            m_file.seekp(m_file.tellg());
            m_file &lt;&lt; text;
        }
    }
    m_file.close();
}
</code></pre>
<p>Parameter : Value = der zu suchende Title und text = der neue Wert.</p>
<p>Meine Struktur der Daten in der Txt besteht immer aus einem title z.B. [Name] und in der nächsten Zeile steht dann der Wert.</p>
<p>Diese Funktion funktioniert aber nicht... Sie schreibt den Text erst 2Zeilen später und ich komm nicht dahinter wieso <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="😕"
    /> . Ich finde auch keine passende Tutorials/Forumbeiträge zu diesem Thema.</p>
<p>Ich hoffe ihr könnt mir helfen...</p>
<p>mfg PrX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294916/std-fstream-output-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 15:43:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294916.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Nov 2011 17:38:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::fstream output Problem on Thu, 03 Nov 2011 17:38:49 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für mein Projekt aus einer txt Datei einen bestimmten Datensatz ändern.</p>
<p>Meine derzeitige Funktion.</p>
<pre><code class="language-cpp">void TxtReader::Replace(std::string value, std::string text){
    std::fstream m_file;
    m_file.open(m_path.c_str(), std::ios::out | std::ios::in);
    std::string buffer;
    while(!m_file.eof()){
        std::getline(m_file, buffer);
        if(buffer == value){
            m_file.seekp(m_file.tellg());
            m_file &lt;&lt; text;
        }
    }
    m_file.close();
}
</code></pre>
<p>Parameter : Value = der zu suchende Title und text = der neue Wert.</p>
<p>Meine Struktur der Daten in der Txt besteht immer aus einem title z.B. [Name] und in der nächsten Zeile steht dann der Wert.</p>
<p>Diese Funktion funktioniert aber nicht... Sie schreibt den Text erst 2Zeilen später und ich komm nicht dahinter wieso <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="😕"
    /> . Ich finde auch keine passende Tutorials/Forumbeiträge zu diesem Thema.</p>
<p>Ich hoffe ihr könnt mir helfen...</p>
<p>mfg PrX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139927</guid><dc:creator><![CDATA[PrX]]></dc:creator><pubDate>Thu, 03 Nov 2011 17:38:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::fstream output Problem on Thu, 03 Nov 2011 19:19:04 GMT]]></title><description><![CDATA[<p>Solange dein 'text' nicht immer genauso lang ist, wie der ursprüngliche Text (bzw. Zeile) wird es so nicht klappen (da du evtl. dann noch Reste in der Zeile stehen hast oder aber schon die nächste Zeile überschreibst).</p>
<p>Die übliche Vorgehensweise ist:<br />
1. Datei komplett einlesen<br />
2. Datenstruktur (bzw. einzelne Zeilen) ändern<br />
3. Datei komplett zurückschreiben</p>
<p>Einfachste Datenstruktur wäre dann std::vector<a href="std::string" rel="nofollow">std::string</a>, und diese dann (so wie du es bisher schon tust) mittels std::getline(...) einlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139969</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 03 Nov 2011 19:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to std::fstream output Problem on Thu, 03 Nov 2011 19:38:59 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antwort.<br />
Dann werde ich es wohl so lösen.</p>
<p>mfg PrX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139994</guid><dc:creator><![CDATA[PrX]]></dc:creator><pubDate>Thu, 03 Nov 2011 19:38:59 GMT</pubDate></item></channel></rss>