<?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[Schleifenproblem]]></title><description><![CDATA[<pre><code class="language-cpp">#include &quot;class.h&quot;

int verwaltung::CreatIndex(){

    int i = 0;

    fstream f_files1;
    f_files1.open( &quot;files1.txt&quot;, fstream::in );

    fstream f_files2;
    f_files2.open( &quot;files2.txt&quot;, fstream::in );

    fstream f_index;
    f_index.open( &quot;Index.txt&quot;, fstream::out );

    string s_vergleich1;
    string s_vergleich2;

    while ( !f_files1.eof() ){

     getline( f_files1, s_vergleich1 );

     while ( !f_files2.eof() ){

     getline( f_files2, s_vergleich2 );

        if ( ( i = s_vergleich2.compare(s_vergleich1) ) == 0 ){
        f_index &lt;&lt; s_vergleich1 &lt;&lt; endl;
        }
    }
    f_files2.seekg ( 0, ios_base::beg );
    }

    f_files1.close();
    f_files2.close();
    f_index.close();

 return 0;
}
</code></pre>
<p>files1:</p>
<pre><code>a.txt
b.txt
c.txt
d.txt
e.txt
f.txt
g.txt
h.txt
i.txt
j.txt
k.txt
l.txt
m.txt
n.txt
o.txt
p.txt
z.txt
</code></pre>
<p>files2:</p>
<pre><code>a.txt
b.txt
c.txt
d.txt
e.txt
f.txt
g.txt
h.txt
i.txt
j.txt
k.txt
l.txt
m.txt
n.txt
z.txt
</code></pre>
<p>index:</p>
<pre><code>a.txt
</code></pre>
<p>Warum wird nach dem 1. Vergleich des 1. String in files1<br />
mit dem 1. String des files2 kein weiterer Vergleich mehr gemacht?</p>
<p>Meine Vermutung war, dass der f_files2 stream nach einmaligem Durchlaufen der<br />
2. while schleife am Ende angelangt ist...<br />
jedoch müsste dieser nach f_files2.seekg ( 0, ios_base::beg );<br />
wieder am Anfang stehen.</p>
<p>Wäre nett wenn mir jemand helfen könnte <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/topic/275493/schleifenproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 22:22:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/275493.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Oct 2010 15:47:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 15:47:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &quot;class.h&quot;

int verwaltung::CreatIndex(){

    int i = 0;

    fstream f_files1;
    f_files1.open( &quot;files1.txt&quot;, fstream::in );

    fstream f_files2;
    f_files2.open( &quot;files2.txt&quot;, fstream::in );

    fstream f_index;
    f_index.open( &quot;Index.txt&quot;, fstream::out );

    string s_vergleich1;
    string s_vergleich2;

    while ( !f_files1.eof() ){

     getline( f_files1, s_vergleich1 );

     while ( !f_files2.eof() ){

     getline( f_files2, s_vergleich2 );

        if ( ( i = s_vergleich2.compare(s_vergleich1) ) == 0 ){
        f_index &lt;&lt; s_vergleich1 &lt;&lt; endl;
        }
    }
    f_files2.seekg ( 0, ios_base::beg );
    }

    f_files1.close();
    f_files2.close();
    f_index.close();

 return 0;
}
</code></pre>
<p>files1:</p>
<pre><code>a.txt
b.txt
c.txt
d.txt
e.txt
f.txt
g.txt
h.txt
i.txt
j.txt
k.txt
l.txt
m.txt
n.txt
o.txt
p.txt
z.txt
</code></pre>
<p>files2:</p>
<pre><code>a.txt
b.txt
c.txt
d.txt
e.txt
f.txt
g.txt
h.txt
i.txt
j.txt
k.txt
l.txt
m.txt
n.txt
z.txt
</code></pre>
<p>index:</p>
<pre><code>a.txt
</code></pre>
<p>Warum wird nach dem 1. Vergleich des 1. String in files1<br />
mit dem 1. String des files2 kein weiterer Vergleich mehr gemacht?</p>
<p>Meine Vermutung war, dass der f_files2 stream nach einmaligem Durchlaufen der<br />
2. while schleife am Ende angelangt ist...<br />
jedoch müsste dieser nach f_files2.seekg ( 0, ios_base::beg );<br />
wieder am Anfang stehen.</p>
<p>Wäre nett wenn mir jemand helfen könnte <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/1966127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966127</guid><dc:creator><![CDATA[O.o]]></dc:creator><pubDate>Fri, 15 Oct 2010 15:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 15:51:59 GMT]]></title><description><![CDATA[<p>Kurzer Nachtrag:<br />
die Zeile 28 heißt,</p>
<pre><code>if ( s_vergleich2.compare(s_vergleich1) == 0 ){
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1966129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966129</guid><dc:creator><![CDATA[O.o]]></dc:creator><pubDate>Fri, 15 Oct 2010 15:51:59 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:13:26 GMT]]></title><description><![CDATA[<p>Du hast recht mit deiner Vermutung, aber dein seekg steht hinter der Schleife die die erste Datei durchläuft.</p>
<p>Zu deinem Code:<br />
Hat i irgendeinen Sinn? warum vergleichst du die Strings nicht mit &quot;==&quot;?</p>
<p>Wenn du vor einer Leseoperation auf eof prüfst, bringt dir das herzlich wenig, wenn die folgende Leseoperation wegen eof scheitert und du dann trotzdem mit der Verarbeitung weitermachst. Schreib deine Schleifenköpfe lieber so: <code>while ( getline( f_files1, s_vergleich1 ) )</code></p>
<p>Gibt es Gründe, warum du die Dateien von Hand öffnest und schließt? Das kannst du doch den Konstruktor und Destruktor des fstreams automatisch machen lassen. Dann kann garantiert nichts schiefgehen, während ein versehentlich falsch eingesetztes open oder close zu merkwürdigem Verhalten führt.</p>
<p>Warum benutzt du fstream und nicht ifstream/ofstream?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966132</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:01:11 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast recht mit deiner Vermutung, aber dein seekg steht hinter der Schleife die die erste Datei durchläuft.</p>
</blockquote>
<p>Das steht doch in der 1. while Schleife,<br />
also nach der Schleife, die die 2. Datei durchläuft,<br />
oder verstehe ich dich falsch? <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/1966134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966134</guid><dc:creator><![CDATA[O.o]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:03:37 GMT]]></title><description><![CDATA[<p>O.o schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast recht mit deiner Vermutung, aber dein seekg steht hinter der Schleife die die erste Datei durchläuft.</p>
</blockquote>
<p>Das steht doch in der 1. while Schleife,<br />
also nach der Schleife, die die 2. Datei durchläuft,<br />
oder verstehe ich dich falsch? <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>
</blockquote>
<p>Oh ,richtig. Deine Einrückung hat mich total durcheinandergebracht. Ich gucke mir das mal an. Ich habe oben noch ein paar Fragen/Anmerkungen an dich reineditiert, mit denen du dich inzwischen beschäftigen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966138</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:03:37 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:12:16 GMT]]></title><description><![CDATA[<p>Ich hab's: Nachdem das getline von Datei 2 am Dateiende fehlschlägt, ist der Stream in einem Fehlerzustand. Den musst du ersteinmal beseitigen mit clear(), bevor du wieder etwas mit dem Stream machen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966147</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:17:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich habe oben noch ein paar Fragen/Anmerkungen an dich reineditiert, mit denen du dich inzwischen beschäftigen kannst.</p>
</blockquote>
<p>Ok <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>
<p>-hat i irgendeinen Sinn?<br />
i hatte noch einen Sinn, als ich mit .find() anstatt .compare<br />
verglichen habe. Dies hat allerdings zu Problemen im Programmablauf geführt.</p>
<p>-Gibt es Gründe, warum du die Dateien von Hand öffnest und schließt?<br />
Der f_index.close() gehört eigentlich in eine<br />
andere funktion und da habe ich es lieber, wenn ich sehe wo ich eine<br />
File schließe^^</p>
<p>-Schleifenköfpe<br />
cool wusste ich nicht :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966149</guid><dc:creator><![CDATA[O.o]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:17:01 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Fri, 15 Oct 2010 16:17:57 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich hab's: Nachdem das getline von Datei 2 am Dateiende fehlschlägt, ist der Stream in einem Fehlerzustand. Den musst du ersteinmal beseitigen mit clear(), bevor du wieder etwas mit dem Stream machen kannst.</p>
</blockquote>
<p>Echt super, vielen Dank!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966150</guid><dc:creator><![CDATA[O.o]]></dc:creator><pubDate>Fri, 15 Oct 2010 16:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifenproblem on Sat, 16 Oct 2010 07:27:03 GMT]]></title><description><![CDATA[<p>mh aber mal so ne andere anmerkung_</p>
<p>wieso liest du die dateien nicht komplett ein(z.B. in nem std::vector<a href="std::string" rel="nofollow">std::string</a>) und guckst dir dann diese gespeicherten daten an</p>
<p>so ist das doch mordslangsam weils immer auf die festplatte warten muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1966332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1966332</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 16 Oct 2010 07:27:03 GMT</pubDate></item></channel></rss>