<?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[Such-Algorhytmus]]></title><description><![CDATA[<p>Hi,</p>
<p>mein Programm soll eine Datei öffnen und nach einem bestimmten Eintrag da drinne zu suchen. Hier ist der Code:</p>
<p>Code:</p>
<p>string aclient_inp_string;<br />
int i;<br />
ifstream aclient_inp;<br />
string diesername = path_folder + &quot;ACLIENT.INP&quot;;<br />
aclient_inp.open(diesername.c_str());<br />
if(!aclient_inp)<br />
{<br />
cout&lt;&lt;&quot;Klappt nicht.&quot;&lt;&lt;endl;<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;geöffnet&quot;&lt;&lt;endl;<br />
while(!aclient_inp.eof())<br />
{<br />
i = 0;<br />
cout&lt;&lt;&quot;erste while-schleife&quot;&lt;&lt;endl;<br />
getline(aclient_inp, aclient_inp_string);<br />
cout&lt;&lt;aclient_inp_string&lt;&lt;endl;<br />
while(i &lt;= aclient_inp_string.length()-1)<br />
{<br />
cout&lt;&lt;&quot;zweite while-schleife&quot;&lt;&lt;endl;<br />
if(aclient_inp_string[i] == '#')<br />
{<br />
cout&lt;&lt;aclient_inp_string[i]&lt;&lt;endl;<br />
string zwischenspeicher = aclient_inp_string.substr(i+1, i+8);<br />
cout&lt;&lt;zwischenspeicher&lt;&lt;endl;<br />
if(zwischenspeicher == &quot;Servername&quot;)<br />
{<br />
cout&lt;&lt;&quot;GEFUNDEN&quot;&lt;&lt;endl;<br />
cout&lt;&lt;zwischenspeicher&lt;&lt;endl;<br />
}<br />
}<br />
i++;<br />
}<br />
}<br />
}<br />
aclient_inp.close();</p>
<p>Leider klappt es nicht ganz wie ich es mir vorgestellt habe. Mein Programm bricht mit einem Runtime Error ab.</p>
<p>Das letzte was es ausgibt ist:<br />
zweite while-schleife<br />
zweite while-schleife<br />
zweite while-schleife</p>
<h1></h1>
<p>Wie ihr gemerkt habt suche ich in meinem Prog nach &quot;#&quot;, aber in der Datei befindet sich kein &quot;#&quot;. Deswegen frag ich mich wieso es am Ende &quot;#&quot; ausgibt. Kennt jemadn vielleicth einen besseren Such-Algorhytmus?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164592/such-algorhytmus</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 23:18:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164592.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Nov 2006 10:10:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 10:10:13 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mein Programm soll eine Datei öffnen und nach einem bestimmten Eintrag da drinne zu suchen. Hier ist der Code:</p>
<p>Code:</p>
<p>string aclient_inp_string;<br />
int i;<br />
ifstream aclient_inp;<br />
string diesername = path_folder + &quot;ACLIENT.INP&quot;;<br />
aclient_inp.open(diesername.c_str());<br />
if(!aclient_inp)<br />
{<br />
cout&lt;&lt;&quot;Klappt nicht.&quot;&lt;&lt;endl;<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;geöffnet&quot;&lt;&lt;endl;<br />
while(!aclient_inp.eof())<br />
{<br />
i = 0;<br />
cout&lt;&lt;&quot;erste while-schleife&quot;&lt;&lt;endl;<br />
getline(aclient_inp, aclient_inp_string);<br />
cout&lt;&lt;aclient_inp_string&lt;&lt;endl;<br />
while(i &lt;= aclient_inp_string.length()-1)<br />
{<br />
cout&lt;&lt;&quot;zweite while-schleife&quot;&lt;&lt;endl;<br />
if(aclient_inp_string[i] == '#')<br />
{<br />
cout&lt;&lt;aclient_inp_string[i]&lt;&lt;endl;<br />
string zwischenspeicher = aclient_inp_string.substr(i+1, i+8);<br />
cout&lt;&lt;zwischenspeicher&lt;&lt;endl;<br />
if(zwischenspeicher == &quot;Servername&quot;)<br />
{<br />
cout&lt;&lt;&quot;GEFUNDEN&quot;&lt;&lt;endl;<br />
cout&lt;&lt;zwischenspeicher&lt;&lt;endl;<br />
}<br />
}<br />
i++;<br />
}<br />
}<br />
}<br />
aclient_inp.close();</p>
<p>Leider klappt es nicht ganz wie ich es mir vorgestellt habe. Mein Programm bricht mit einem Runtime Error ab.</p>
<p>Das letzte was es ausgibt ist:<br />
zweite while-schleife<br />
zweite while-schleife<br />
zweite while-schleife</p>
<h1></h1>
<p>Wie ihr gemerkt habt suche ich in meinem Prog nach &quot;#&quot;, aber in der Datei befindet sich kein &quot;#&quot;. Deswegen frag ich mich wieso es am Ende &quot;#&quot; ausgibt. Kennt jemadn vielleicth einen besseren Such-Algorhytmus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172033</guid><dc:creator><![CDATA[KingV1k]]></dc:creator><pubDate>Fri, 10 Nov 2006 10:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 10:50:13 GMT]]></title><description><![CDATA[<p>Erstens: sfds</p>
<p>Zweitens: Statt den String manuell zu durchforsten, solltest du lieber die String-Methode find() dafür verwenden <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=";)"
      alt="😉"
    /></p>
<p>Drittens: Was ist denn die letzte Dateizeile, die vor dem Absturz (und dem Paket &quot;zweite while-Schleife&quot;) ausgegeben wurde? Eventuell solltest du direkt nach dem getline() nochmal überprüfen, ob die letzte Eingabe gültig war (oder du auf EOF gestoßen bist)</p>
<p>PS: Und nur der Vollständigkeit halber: Der zweite Parameter von string::substr() gibt die <strong>Länge</strong> des ausgeschnittenen Abschnittes an</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172081</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 10 Nov 2006 10:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 12:39:53 GMT]]></title><description><![CDATA[<p>Ich habe deinen Tip befolgt und find() benutzt. klappt perfekt. meine nächste Frage ist:<br />
Ich muss in einem String wo ein Platzhalter (befindet sich ca in der Mitte des Strings) steht etwas einfügen. Dieses etwas ist aber nicht genauso lang wie der Platzhalter. Also würde es mit replace() nicht funktionieren. Kennt jemand da auch eine tolle Funktion oder soll ich mit substr() bisschen rumbasteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172154</guid><dc:creator><![CDATA[KingV1k]]></dc:creator><pubDate>Fri, 10 Nov 2006 12:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 12:43:44 GMT]]></title><description><![CDATA[<p>Klar funktioniert das mit replace() (die Methode von std::string verschiebt die Teile außerhalb des ersetzten Blockes selbsttäig, um Platz für den Ersatztext zu schaffen (oder Lücken zu füllen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172160</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 10 Nov 2006 12:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 12:44:16 GMT]]></title><description><![CDATA[<p>kannste da nicht einfach bis zum platzhalter kopieren und dann die teile zusammenfügen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172162</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Fri, 10 Nov 2006 12:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 13:12:31 GMT]]></title><description><![CDATA[<p>könnte ich machen, aber dafür kann ich nicht substr() benutzen. weil der 2. Parameter nur die Länge des Strings ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172186</guid><dc:creator><![CDATA[KingV1k]]></dc:creator><pubDate>Fri, 10 Nov 2006 13:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Such-Algorhytmus on Fri, 10 Nov 2006 13:21:56 GMT]]></title><description><![CDATA[<p>Wie ich schon sagte - replace() kann den String verlängern/verkürzen:</p>
<pre><code class="language-cpp">string test = &quot;Dies ist ein Test&quot;;
test.replace(9,3,&quot;kein&quot;);
cout&lt;&lt;test;
</code></pre>
<p>(außerdem kannst du den zweiten Parameter von substr() weglassen - dann geht der Teilstring von der angegebenen Position bis zum Ende)</p>
<p>PS: Wenn du mehr über den Umgang mit Strings wissen willst, empfehle ich dir meinen Artikel &quot;Stringverarbeitung in C++&quot; im Magazin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172189</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 10 Nov 2006 13:21:56 GMT</pubDate></item></channel></rss>