<?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[ifstream endlosschleife?]]></title><description><![CDATA[<p>halloo,</p>
<p>ich bin eig noch so ziemlicher anfänger in c++ und versuche gerade eine datei per ifstream zu öffnen und darin zu suchen, aber irgendwie funktioniert da was nicht, weil die messagebox in einer endlosschleife ausgeführt wird. hier mal der code:</p>
<pre><code>void Starten(const char *filename)
{
	std::ifstream Datei;
	Datei.open(filename, std::ios::in);
	int vD = 0;
	if(!Datei.eof())
	{
		std::string Line;
		while(getline(Datei,Line))
		{
			if(Line.find(&quot;x&quot;))
			{
				vD++;
			}
		}
for(int i = 0; i &lt;= 3; i++)
			{
				MessageBox( NULL, &quot;Hallo&quot;, &quot;Error&quot;, MB_OK | MB_ICONERROR );
			}
	}
};
</code></pre>
<p>danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245085/ifstream-endlosschleife</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 00:18:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245085.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Jul 2009 16:30:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ifstream endlosschleife? on Thu, 09 Jul 2009 16:30:56 GMT]]></title><description><![CDATA[<p>halloo,</p>
<p>ich bin eig noch so ziemlicher anfänger in c++ und versuche gerade eine datei per ifstream zu öffnen und darin zu suchen, aber irgendwie funktioniert da was nicht, weil die messagebox in einer endlosschleife ausgeführt wird. hier mal der code:</p>
<pre><code>void Starten(const char *filename)
{
	std::ifstream Datei;
	Datei.open(filename, std::ios::in);
	int vD = 0;
	if(!Datei.eof())
	{
		std::string Line;
		while(getline(Datei,Line))
		{
			if(Line.find(&quot;x&quot;))
			{
				vD++;
			}
		}
for(int i = 0; i &lt;= 3; i++)
			{
				MessageBox( NULL, &quot;Hallo&quot;, &quot;Error&quot;, MB_OK | MB_ICONERROR );
			}
	}
};
</code></pre>
<p>danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739895</guid><dc:creator><![CDATA[samuelb.]]></dc:creator><pubDate>Thu, 09 Jul 2009 16:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream endlosschleife? on Thu, 09 Jul 2009 17:02:11 GMT]]></title><description><![CDATA[<blockquote>
<p>aber irgendwie funktioniert da was nicht</p>
</blockquote>
<p>Und was nicht?</p>
<p>Zeile 6 und 9 ergeben nicht gerade Sinn, hast du da was vertauscht? Probier mal:</p>
<pre><code class="language-cpp">void Starten( const char *filename )
{
    std::ifstream Datei;
    Datei.open( filename, std::ios::in );
    int vD = 0;
    while( !Datei.eof( ) )
    {
        std::string Line;
        getline(Datei,Line))

        if(Line.find(&quot;x&quot;))
        {
             vD++;
        }

        for(int i = 0; i &lt;= 3; i++)
        {
              MessageBox( NULL, &quot;Hallo&quot;, &quot;Error&quot;, MB_OK | MB_ICONERROR );
        }
    }
};
</code></pre>
<p>(Code ungetestet)<br />
Wobei ich mich ernsthaft frage, warum du 3-mal eine MessageBox( ) ausgeben möchtest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739923</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 09 Jul 2009 17:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream endlosschleife? on Thu, 09 Jul 2009 17:17:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20193">@Kóyaánasqatsi</a>,<br />
Dein Code führt die äussere Schleife einmal zu oft aus. Das <code>eofbit</code> Flag wird erst gesetzt, wenn über das Ende hinaus gelesen wurde und nicht, wenn der Stream am Ende steht.</p>
<p>Auch macht die if-Abfrage wahrscheinlich nicht das, was er erwartet. Wenn X nämlich nicht gefunden wurde, wird <code>std::string::npos</code> zurückgegeben, was ungleich 0 ist und somit <code>true</code> ergibt.</p>
<p>Also alles ein wenig umgebaut:</p>
<pre><code class="language-cpp">void Starten(const char *filename)
{
    std::ifstream Datei;
    Datei.open(filename, std::ios::in);

    int vD = 0;
    std::string Line;
    while(getline(Datei,Line)) // Lesen solange es geht.
    {
        if(Line.find('x') != std::string::npos) // Gefunden?
        {
            ++vD;
        }

        // MessageBoxes rausgenommen. Wofür??
    }
};
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739941</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 09 Jul 2009 17:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream endlosschleife? on Thu, 09 Jul 2009 17:25:58 GMT]]></title><description><![CDATA[<p>1. gibt es c++ tags<br />
2. war das komisch eingerückt</p>
<p>also ma richtig:</p>
<pre><code class="language-cpp">void Starten(const char *filename) 
{ 
    std::ifstream Datei; 
    Datei.open(filename, std::ios::in); 
    int vD = 0; 
    if(Datei.is_open()) //
    { 
        std::string Line;
        while(getline(Datei,Line))
        { 
            if(Line.find('x') != std::string::npos) 
            {
                vD++;
            }
        }
        for(int i = 0; i &lt;= 3; i++) 
        { 
            MessageBox( NULL, &quot;Hallo&quot;, &quot;Error&quot;, MB_OK | MB_ICONERROR ); 
        } 
    }
}
</code></pre>
<p>ansonsten weiß ich nicht, warum es nicht gehen sollte ^^</p>
<p>bb</p>
<p>edit: huch - hab ich doch glatt den gleichen fehler beim find gemacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739945</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 09 Jul 2009 17:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream endlosschleife? on Thu, 09 Jul 2009 18:13:34 GMT]]></title><description><![CDATA[<p>danke sehr, jetzt funktionierts!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739977</guid><dc:creator><![CDATA[samuelb.]]></dc:creator><pubDate>Thu, 09 Jul 2009 18:13:34 GMT</pubDate></item></channel></rss>