<?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[Ws. lächerlicher Fehler aber komm nicht drauf]]></title><description><![CDATA[<p>Hallo,<br />
sitz hier schon ne Weile an dem Programm (bin eher noch Anfänger).<br />
Eventuell liegt es an der späten Stunde, dass ich das nicht mehr auf die Reihe bekomme. Oder einfach schon zu lange dran gearbeitet <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>Naja, zu meinem Problem:</p>
<p>In meinem Programm wird ein Teil einer Ip abgefragt &quot;HotIp&quot; und das Interval (wieviel Pause zwischen den Schleifen ist).<br />
Dann wird mittels system(netstat -n) abgefragt, in eine Textdatei gespeichert, ausgelesen, in String gespeichert, bearbeitet und mit der Hot-Ip verglichen.<br />
Stimmen die beiden überein, soll ein Signal ausgegeben werden. Wenn nicht, soll die Schleife von vorne beginnen.<br />
Leider stürzt es mir immer mit &quot;Abnormal program termination&quot; ab.<br />
Aber nur wenn ich die Schleife drin habe, sonst nicht!</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;windows.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;fstream&gt;
using namespace std;
int main()
{
  int server;
  int interval;
  int currentip;
  char zeile[1024];
  string text;
  string search=&quot;4000&quot;;
  string serverneu;
  int sleep;
  ifstream file;
  cout&lt;&lt;&quot;Hot Ip: &quot;;
  cin&gt;&gt;server;  //Eingabe der Hot-Ip
  cout&lt;&lt;&quot;\n\nWelcher Interval?\n1. 5 Sekunden\n2. 10 Sekunden\n3. 30 Sekunden\n4. 60 Sekunden\n\n&quot;;
  cin&gt;&gt;interval;  //Eingabe des Intervals
  if(interval == 1)
  {
    sleep = 50;
  }
  else if(interval == 2)
  {
    sleep = 100;
  }
  else if(interval == 3)
  {
    sleep = 300;
  }
  else if(interval == 4)
  {
    sleep = 600;
  }

    Schleife:  //Schleife
    system(&quot;netstat -n | find \&quot;4000\&quot; &gt; server.txt&quot;);  //Speichert aktuelle IP in TXT-Datei
    file.open(&quot;server.txt&quot;, ios::in);  //TXT-Datei öffnen

    if (file.good())  //Wenn die Datei erfolgreich geöffnet wurde...
    {
     file.seekg(0L, ios::beg);  //... an den Anfang der Datei springen

     while (! file.eof())  //Schleife - Text wird in String geschrieben
      {
        file.getline(zeile, 1024);  //Lest Zeichen für Zeichen in Char &quot;Zeile&quot;
        text=text + zeile;  //Schreibt Zeichen für Zeichen in String &quot;Text&quot;
      }

    }

    std::string::size_type i = text.find(search);  //Sucht nach dem Port
    i=i-1;
    text.erase(i);  //Löscht alles ab dem Port (inkl. Doppelpunkt)
    cout&lt;&lt;&quot;test&quot;;
    std::string::size_type a = text.rfind(&quot;.&quot;);  //Sucht Anhaltspunkt
    a=a+1;
    text.erase(0,a);  //Löscht alles sodass nur mehr die entscheidende Adresse überbleibt
    serverneu = server;
    if(serverneu == text)  //Wenn der Server übereinstimmt...
    {
      cout&lt;&lt;&quot;\a\a\a&quot;;  //...wird ein Signal ausgegeben...
      return 45;
    }
    else  //...wenn nicht...
    {
      text = &quot;&quot;;  //(Text wird zurückgesetzt)
      cout&lt;&lt;&quot;Schlafe\n&quot;;
      Sleep(sleep);  //(Pausenzeit)
      goto Schleife;  //...wiederholt sich die Schleife
    }
}
</code></pre>
<p>Bitte helft mir, weiss echt nicht mehr weiter <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>
<p>Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255724/ws-lächerlicher-fehler-aber-komm-nicht-drauf</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 19:59:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255724.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Dec 2009 00:40:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ws. lächerlicher Fehler aber komm nicht drauf on Fri, 04 Dec 2009 00:40:04 GMT]]></title><description><![CDATA[<p>Hallo,<br />
sitz hier schon ne Weile an dem Programm (bin eher noch Anfänger).<br />
Eventuell liegt es an der späten Stunde, dass ich das nicht mehr auf die Reihe bekomme. Oder einfach schon zu lange dran gearbeitet <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>Naja, zu meinem Problem:</p>
<p>In meinem Programm wird ein Teil einer Ip abgefragt &quot;HotIp&quot; und das Interval (wieviel Pause zwischen den Schleifen ist).<br />
Dann wird mittels system(netstat -n) abgefragt, in eine Textdatei gespeichert, ausgelesen, in String gespeichert, bearbeitet und mit der Hot-Ip verglichen.<br />
Stimmen die beiden überein, soll ein Signal ausgegeben werden. Wenn nicht, soll die Schleife von vorne beginnen.<br />
Leider stürzt es mir immer mit &quot;Abnormal program termination&quot; ab.<br />
Aber nur wenn ich die Schleife drin habe, sonst nicht!</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;windows.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;fstream&gt;
using namespace std;
int main()
{
  int server;
  int interval;
  int currentip;
  char zeile[1024];
  string text;
  string search=&quot;4000&quot;;
  string serverneu;
  int sleep;
  ifstream file;
  cout&lt;&lt;&quot;Hot Ip: &quot;;
  cin&gt;&gt;server;  //Eingabe der Hot-Ip
  cout&lt;&lt;&quot;\n\nWelcher Interval?\n1. 5 Sekunden\n2. 10 Sekunden\n3. 30 Sekunden\n4. 60 Sekunden\n\n&quot;;
  cin&gt;&gt;interval;  //Eingabe des Intervals
  if(interval == 1)
  {
    sleep = 50;
  }
  else if(interval == 2)
  {
    sleep = 100;
  }
  else if(interval == 3)
  {
    sleep = 300;
  }
  else if(interval == 4)
  {
    sleep = 600;
  }

    Schleife:  //Schleife
    system(&quot;netstat -n | find \&quot;4000\&quot; &gt; server.txt&quot;);  //Speichert aktuelle IP in TXT-Datei
    file.open(&quot;server.txt&quot;, ios::in);  //TXT-Datei öffnen

    if (file.good())  //Wenn die Datei erfolgreich geöffnet wurde...
    {
     file.seekg(0L, ios::beg);  //... an den Anfang der Datei springen

     while (! file.eof())  //Schleife - Text wird in String geschrieben
      {
        file.getline(zeile, 1024);  //Lest Zeichen für Zeichen in Char &quot;Zeile&quot;
        text=text + zeile;  //Schreibt Zeichen für Zeichen in String &quot;Text&quot;
      }

    }

    std::string::size_type i = text.find(search);  //Sucht nach dem Port
    i=i-1;
    text.erase(i);  //Löscht alles ab dem Port (inkl. Doppelpunkt)
    cout&lt;&lt;&quot;test&quot;;
    std::string::size_type a = text.rfind(&quot;.&quot;);  //Sucht Anhaltspunkt
    a=a+1;
    text.erase(0,a);  //Löscht alles sodass nur mehr die entscheidende Adresse überbleibt
    serverneu = server;
    if(serverneu == text)  //Wenn der Server übereinstimmt...
    {
      cout&lt;&lt;&quot;\a\a\a&quot;;  //...wird ein Signal ausgegeben...
      return 45;
    }
    else  //...wenn nicht...
    {
      text = &quot;&quot;;  //(Text wird zurückgesetzt)
      cout&lt;&lt;&quot;Schlafe\n&quot;;
      Sleep(sleep);  //(Pausenzeit)
      goto Schleife;  //...wiederholt sich die Schleife
    }
}
</code></pre>
<p>Bitte helft mir, weiss echt nicht mehr weiter <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>
<p>Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817499</guid><dc:creator><![CDATA[topfmann]]></dc:creator><pubDate>Fri, 04 Dec 2009 00:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to Ws. lächerlicher Fehler aber komm nicht drauf on Fri, 04 Dec 2009 09:38:29 GMT]]></title><description><![CDATA[<p>Wahrscheinlich liegts nicht daran, aber goto ist Tabu! Nimm lieber eine while-Scheife!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817718</guid><dc:creator><![CDATA[polario]]></dc:creator><pubDate>Fri, 04 Dec 2009 09:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Ws. lächerlicher Fehler aber komm nicht drauf on Fri, 04 Dec 2009 09:47:29 GMT]]></title><description><![CDATA[<p>Leider passiert mir mit einer While-Schleife genau das selbe.<br />
Abnormal Program termination.<br />
Ausstieg mit Beendigungscode 3.<br />
Den letzten Code-Schnipsel den das Programm ausführt ist Zeile 59.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817724</guid><dc:creator><![CDATA[topfmann]]></dc:creator><pubDate>Fri, 04 Dec 2009 09:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to Ws. lächerlicher Fehler aber komm nicht drauf on Fri, 04 Dec 2009 10:03:27 GMT]]></title><description><![CDATA[<p>Vielleicht liegt es ja auch daran, dass du deine Datei nicht schließt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817730</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 04 Dec 2009 10:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Ws. lächerlicher Fehler aber komm nicht drauf on Fri, 04 Dec 2009 10:04:04 GMT]]></title><description><![CDATA[<p>topfmann schrieb:</p>
<blockquote>
<p>Den letzten Code-Schnipsel den das Programm ausführt ist Zeile 59.</p>
</blockquote>
<p>genau - und mit text.erase( i ) fällst Du dann auf die Nase, weil Du nicht überprüfst, ob i einen sinnvollen Wert angenommen hat. Nach</p>
<pre><code class="language-cpp">std::string::size_type i = text.find(search);  //Sucht nach dem Port
</code></pre>
<p>musst Du i auf Gleichheit mit string::npos abfragen; wenn es gleich ist, hat er den Text nicht gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817731</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Fri, 04 Dec 2009 10:04:04 GMT</pubDate></item></channel></rss>