<?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[Probleme beim String einlesen und reinschreiben]]></title><description><![CDATA[<p>Hi !!!</p>
<p>Bei mir passiert etwas, was ich nicht verstehe wenn ich im Code etwas hinzufüge.<br />
Vielleicht weiss jemand, woran es liegt.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
  ifstream alt(&quot;datei.txt&quot;);

  if (!alt)     // Falls FileIn gültig ist.
    return 1;

  ofstream neu(&quot;neue.txt&quot;);

  string zeile;
  string eintrag;

  string val, col, row;

  neu &lt;&lt;  &quot;Zeileneintrag&quot;;
  while(getline(alt,zeile))
  {
    neu &lt;&lt; &quot;\n&quot;;
    string::size_type Pos_s = 0;
    while ( (Pos_s  = zeile.find(&quot;_&quot;, Pos_s) ) != string::npos)
    {
      string::size_type Pos_begin = Pos_s;
      Pos_begin = zeile.rfind(&quot; &quot;, Pos_begin);
      Pos_begin;
      for(Pos_begin; Pos_begin &lt; Pos_s-1; Pos_begin++)
      {
        val+=zeile[Pos_begin];
      }
      Pos_begin++;

      neu &lt;&lt; val;

//----------------------------------------------------
// wenn ich das eingeklamerte durch diesen Kommentar hier rauslasse, 
// dann schreibt er mir alles richtig ein in die Datei
// Wenn ich das aber drin habe, so bleibt die Datei neue.txt leer
//----------------------------------------------------
      Pos_begin++;
      string::size_type Pos_end = Pos_begin;
      Pos_end = zeile.find(&quot;+&quot;, Pos_end);
      for(Pos_begin; Pos_begin &lt; Pos_end; Pos_begin++)
      {
        row+=zeile[Pos_begin];
      }
      cout &lt;&lt; row &lt;&lt; endl;  //im row steht der richtige Wert
      neu &lt;&lt; row;
//-----------------------------------------------------

      Pos_s++;
    }
  }

  alt.close();
  neu.close();
  return 0;
}
</code></pre>
<p>Warum wird wenn ich den 2-ten Teil in die datei neu einfügen will diese dann komplett geleert? Schliesslich stehen da doch schon Werte drin, oder nicht?<br />
Was mache ich falsch?<br />
Ich will in die Datei folgendes eintragen:<br />
0 &gt;= + <strong>-1</strong>s_<strong>1</strong> + <strong>1</strong>s_<strong>2</strong><br />
doch bis zum s_2 komme ich gar nciht erst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147056/probleme-beim-string-einlesen-und-reinschreiben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 00:34:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147056.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 May 2006 12:33:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim String einlesen und reinschreiben on Sat, 13 May 2006 12:33:09 GMT]]></title><description><![CDATA[<p>Hi !!!</p>
<p>Bei mir passiert etwas, was ich nicht verstehe wenn ich im Code etwas hinzufüge.<br />
Vielleicht weiss jemand, woran es liegt.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
  ifstream alt(&quot;datei.txt&quot;);

  if (!alt)     // Falls FileIn gültig ist.
    return 1;

  ofstream neu(&quot;neue.txt&quot;);

  string zeile;
  string eintrag;

  string val, col, row;

  neu &lt;&lt;  &quot;Zeileneintrag&quot;;
  while(getline(alt,zeile))
  {
    neu &lt;&lt; &quot;\n&quot;;
    string::size_type Pos_s = 0;
    while ( (Pos_s  = zeile.find(&quot;_&quot;, Pos_s) ) != string::npos)
    {
      string::size_type Pos_begin = Pos_s;
      Pos_begin = zeile.rfind(&quot; &quot;, Pos_begin);
      Pos_begin;
      for(Pos_begin; Pos_begin &lt; Pos_s-1; Pos_begin++)
      {
        val+=zeile[Pos_begin];
      }
      Pos_begin++;

      neu &lt;&lt; val;

//----------------------------------------------------
// wenn ich das eingeklamerte durch diesen Kommentar hier rauslasse, 
// dann schreibt er mir alles richtig ein in die Datei
// Wenn ich das aber drin habe, so bleibt die Datei neue.txt leer
//----------------------------------------------------
      Pos_begin++;
      string::size_type Pos_end = Pos_begin;
      Pos_end = zeile.find(&quot;+&quot;, Pos_end);
      for(Pos_begin; Pos_begin &lt; Pos_end; Pos_begin++)
      {
        row+=zeile[Pos_begin];
      }
      cout &lt;&lt; row &lt;&lt; endl;  //im row steht der richtige Wert
      neu &lt;&lt; row;
//-----------------------------------------------------

      Pos_s++;
    }
  }

  alt.close();
  neu.close();
  return 0;
}
</code></pre>
<p>Warum wird wenn ich den 2-ten Teil in die datei neu einfügen will diese dann komplett geleert? Schliesslich stehen da doch schon Werte drin, oder nicht?<br />
Was mache ich falsch?<br />
Ich will in die Datei folgendes eintragen:<br />
0 &gt;= + <strong>-1</strong>s_<strong>1</strong> + <strong>1</strong>s_<strong>2</strong><br />
doch bis zum s_2 komme ich gar nciht erst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1057019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1057019</guid><dc:creator><![CDATA[bucada]]></dc:creator><pubDate>Sat, 13 May 2006 12:33:09 GMT</pubDate></item></channel></rss>