<?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[Selbstgemachte Array suche]]></title><description><![CDATA[<p>Hallo zusammen hier mal wieder ein kleines Problem.<br />
Ich fummel schon seit einiger Zeit an einen kleinen Rechenprogramm rum und möchte nun ein char array nach dem Zeichen s durchsuchen.<br />
Diese S-Suche habe ich in eine extra Funktion ausgelagert, leider scheint in meiner Logik ein Fehler drin zu sein, den ich nicht finde bzw nicht verstehe.<br />
Wisual Studio gibt den Fehlercode C2181 aus. (Ungültiges 'else' ohne zugehöriges 'if')</p>
<p>Die Cracks sehen die Fehler bestimmt in 5 sec. LOL</p>
<p>Das Programm lautet:</p>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>char zeichen [39]={0};<br />
double zahlen [39]={0};<br />
int striger=0;<br />
int ztriger=0;<br />
void ssuche();</p>
<p>int main()<br />
{</p>
<p>int pos=1;<br />
cout &lt;&lt; &quot;Bitte geben sie eine beliebige Rechnung ein&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Erlaubte Zeichen sind: 0-9,+,-,*,/&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Sowie 'e' um die Eingabe zu beenden&quot; &lt;&lt;endl;<br />
while (pos &lt;40, striger==0)<br />
{<br />
if (pos%2==1)<br />
{<br />
cout &lt;&lt; &quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt; pos;<br />
cout &lt;&lt; &quot;. Zahl ein: &quot;;<br />
cin &gt;&gt; zahlen[pos];<br />
pos=pos+1;<br />
}<br />
else<br />
{<br />
cout &lt;&lt;&quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt;pos;<br />
cout &lt;&lt;&quot;. Rechenzeichen ein: &quot;;<br />
cin &gt;&gt; zeichen[pos];<br />
pos=pos+1;<br />
}<br />
ssuche ();<br />
}<br />
system (&quot;pause&quot;);<br />
}<br />
void ssuche ()<br />
{<br />
int i=1;<br />
char temp=0;<br />
cout &lt;&lt;&quot;ssuche Lauuft&quot; &lt;&lt;endl;<br />
while (striger==0, i&lt;40);<br />
{<br />
if (temp!='s');<br />
{<br />
temp = zeichen[i];<br />
i=i+2;<br />
}<br />
else<br />
striger=1;<br />
}<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242292/selbstgemachte-array-suche</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 00:51:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242292.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Jun 2009 08:12:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 08:12:11 GMT]]></title><description><![CDATA[<p>Hallo zusammen hier mal wieder ein kleines Problem.<br />
Ich fummel schon seit einiger Zeit an einen kleinen Rechenprogramm rum und möchte nun ein char array nach dem Zeichen s durchsuchen.<br />
Diese S-Suche habe ich in eine extra Funktion ausgelagert, leider scheint in meiner Logik ein Fehler drin zu sein, den ich nicht finde bzw nicht verstehe.<br />
Wisual Studio gibt den Fehlercode C2181 aus. (Ungültiges 'else' ohne zugehöriges 'if')</p>
<p>Die Cracks sehen die Fehler bestimmt in 5 sec. LOL</p>
<p>Das Programm lautet:</p>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>char zeichen [39]={0};<br />
double zahlen [39]={0};<br />
int striger=0;<br />
int ztriger=0;<br />
void ssuche();</p>
<p>int main()<br />
{</p>
<p>int pos=1;<br />
cout &lt;&lt; &quot;Bitte geben sie eine beliebige Rechnung ein&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Erlaubte Zeichen sind: 0-9,+,-,*,/&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Sowie 'e' um die Eingabe zu beenden&quot; &lt;&lt;endl;<br />
while (pos &lt;40, striger==0)<br />
{<br />
if (pos%2==1)<br />
{<br />
cout &lt;&lt; &quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt; pos;<br />
cout &lt;&lt; &quot;. Zahl ein: &quot;;<br />
cin &gt;&gt; zahlen[pos];<br />
pos=pos+1;<br />
}<br />
else<br />
{<br />
cout &lt;&lt;&quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt;pos;<br />
cout &lt;&lt;&quot;. Rechenzeichen ein: &quot;;<br />
cin &gt;&gt; zeichen[pos];<br />
pos=pos+1;<br />
}<br />
ssuche ();<br />
}<br />
system (&quot;pause&quot;);<br />
}<br />
void ssuche ()<br />
{<br />
int i=1;<br />
char temp=0;<br />
cout &lt;&lt;&quot;ssuche Lauuft&quot; &lt;&lt;endl;<br />
while (striger==0, i&lt;40);<br />
{<br />
if (temp!='s');<br />
{<br />
temp = zeichen[i];<br />
i=i+2;<br />
}<br />
else<br />
striger=1;<br />
}<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719434</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 08:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 08:19:21 GMT]]></title><description><![CDATA[<pre><code>if (temp!='s');
</code></pre>
<p>Das Semikolon dort willst Du nicht wirklich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719439</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Tue, 02 Jun 2009 08:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 08:22:38 GMT]]></title><description><![CDATA[<p>Nun dieses s ist ja der gesuchte Char, ohne ' ist es ein &quot;nicht deklarierter bezeichner&quot; und mit &quot; wäre es ein Komentar.<br />
Aber was wäre den nun der richtige Ausdruck für diesen Vergleich ob im Array an der postion i das Zeichen s steht.</p>
<p>Grüße Blade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719440</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 08:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 08:40:33 GMT]]></title><description><![CDATA[<p>blade1982 schrieb:</p>
<blockquote>
<p>Nun dieses s ist ja der gesuchte Char, ohne ' ist es ein &quot;nicht deklarierter bezeichner&quot; und mit &quot; wäre es ein Komentar.<br />
Aber was wäre den nun der richtige Ausdruck für diesen Vergleich ob im Array an der postion i das Zeichen s steht.</p>
</blockquote>
<p>Es geht um das Semikolon, nicht um irgendwelche Hochkommata.</p>
<pre><code class="language-cpp">// Um dieses &gt;;&lt; Semikolon geht es
if (temp!='s');
{ // &lt;-- Wird immer ausgeführt, da if-Anweisung mit Semikolon beendet wurde
  temp = zeichen[i];
  i=i+2;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1719458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719458</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 02 Jun 2009 08:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 10:04:51 GMT]]></title><description><![CDATA[<p>Ok jetzt hab ich es auch gesehen, war wirklich ein winziger Fehler.<br />
Danke für die Hilfe.</p>
<p>Edit:<br />
Mir ist beim Probelauf grade ein weiterer Bug aufgefallen.<br />
Bei dem Programm wie es dort oben steht, hängt es sich nach der Eingabe der ersten Zahl völlig auf.<br />
Soll heißen das die Komandozeile auf keine eingaben mehr reagiert.<br />
Sieht jemand in diesen Programm den fehler?<br />
MFG Blade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719471</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 10:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 10:25:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Was willst du denn hiermit erreichen?</p>
<pre><code class="language-cpp">while (pos &lt;40, striger==0)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1719507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719507</guid><dc:creator><![CDATA[Braunstein_out]]></dc:creator><pubDate>Tue, 02 Jun 2009 10:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 11:11:04 GMT]]></title><description><![CDATA[<p>Die Eingabe des Rechners läuft etwas störrisch ab.<br />
Man gibt eine Zahl ein drückt Enter, dann gibt man ein Rechenzeichen ein und drückt wieder Enter und so weiter.<br />
Es gibt außerdem eine begrenzung für die länge einer Rechenaufgabe und zwar 20 Zahlen mit 19 Rechenzeichen. Sprich läuft die Eingabeschleife nur 39 mal.<br />
Der Striger ist ein Wert den die Funktion ssuche auf 1 setzten wird, wenn die ssuche im Rechenzeichen array den char 's' findet und damit die Eingabeschleife frühzeitig beenden kann.</p>
<p>Soweit meine komplexe Logik.</p>
<p>MFG Blade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719528</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 11:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 11:41:16 GMT]]></title><description><![CDATA[<p>blade1982 schrieb:</p>
<blockquote>
<p>und mit &quot; wäre es ein Komentar.</p>
</blockquote>
<p>Nach der Aussage wäre &quot;s&quot; ein Kommentar? Kommentare beginnen entweder mit // und greifen dann nur für den Rest der aktuellen Zeile oder mit /* und müssen mit */ geschlossen werden. &quot;s&quot; wäre ein Stringliteral.</p>
<p>Deine Schleife sollte mehrere Vergleiche durch &quot;UND&quot; (&amp;&amp;) oder &quot;ODER&quot; (||) verbinden. Bei deiner Schleife wird pos&lt;40 gar nicht weiter betrachtet. Am Ende zählt das Resultat das striger==0 liefert für den Abbruch oder das Weiterlaufen deiner Schleife (Minimalbeispiel):</p>
<pre><code class="language-cpp">int i=0;
int pos=45;
int b=0;
while(pos&lt;40, b==0) { // &amp;&amp; oder || statt ','
  cout &lt;&lt; i++ &lt;&lt; endl;
  if(i==10) b=1;
}
</code></pre>
<p>Die Schleife läuft solange, bis b einen anderen Wert als 0 hat. Der Wert und Typ des Gesamtausdrucks ist der Wert und Typ des (am weitesten) rechts stehenden Teilausdrucks. In diesem Fall b==0. Da wird pos&lt;40 zwar ausgeführt, aber am Ende nicht weiter betrachtet.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719546</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 02 Jun 2009 11:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 11:50:21 GMT]]></title><description><![CDATA[<p>Ich weiß grade nicht wo das hier hinführt, aber die Mainfunktion ist soweit richtig und funktioniert auch so wie sie es soll.<br />
Das problem ist erst aufgetaucht als die Funktion ssuche eben nach den char s suchen soll.<br />
Die ssuche wird bei jeder Rechenzeicheneingabe gestartet.<br />
Wenn man aus der Main Funktion den ssuche Aufruf auskommentiert funktioniert die Main so wie es gewollt war.<br />
Daher vermute ich das die Funktion ssuche immer noch einen (logischen) Fehler enthält.</p>
<p>P.S. pos &lt; 40 ist ja eine Bedingung unter der die while schleife nur laufen darf. Weil die while Schleife bei jeden durchlauf die pos um 1 erhöht läuft diese auch nur max. 39, eben wegen der Bedingung pos &lt; 40.</p>
<p>MFG Blade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719554</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 11:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 12:18:36 GMT]]></title><description><![CDATA[<p>Du brauchst mir die Funktionsweise einer while-Schleife nicht erklären. Deine Bedingung in der While-Schleife lässt pos&lt;40 vollkommen außer acht. Wenn deine Schleife immer bis maximal 39 läuft, ist das nur Zufall, weil irgendwie striger ungleich 0 wird, wenn pos die 39 erreicht.<br />
In deiner anderen Schleife ist diese Bedingung genau andersherum. Da hat striger==0 keine Wirkung, aber i&lt;40 hat jedoch eine.</p>
<p>Kein Wunder das es nicht funktioniert. Du beginnst deine Indizierung mit pos=1 in main. Indizierung beginnt in C++ immer bei 0. Du liest also in zeichen[pos] ein Zeichen ein. Da greifst du aber scheinbar immer mit einer geraden Zahl drauf zu. Im ersten Durchlauf also pos[2]. In deiner Suche (ssuche()), beginnst du aber mit pos=1 und erhöhst dann immer um 2. Damit erwischst du immer nur die Stellen im Array, die kein Zeichen haben.</p>
<p>// Edit:<br />
Dadurch das du immer auf eine Stelle zugreifst, die eigentlich immer ungleich 's' sein müsste, wird striger eigentlich auch nie 1. Dadurch wird deine while-Schleife in main nie abgebrochen und du greifst irgendwann auf ungültige Speicherbereiche zu (könnte den Absturz der Anwendung erklären).</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719564</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 02 Jun 2009 12:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 13:29:48 GMT]]></title><description><![CDATA[<p>Stimmt, gute Tips! Ich habs nochmal verkürzt und nun geht es.<br />
Man muss wirklich gut aufpassen das man da nicht iwo ne kleinigkeit verschlampt.<br />
P.S. Gibt es eingelich ein Befehl in C++ der das Programm beendet? Also wenn z.b. im Zahlenarray ein a gefunden wird, das das Programm nach einer Fehlerausgabe mit cout das Programm anhält?</p>
<p>MFG Blade</p>
<p>Hier der neue Code:</p>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>char zeichen [39]={0};<br />
double zahlen [39]={0};<br />
int striger=0;<br />
int ztriger=0;<br />
void ssuche();<br />
void zsuche();<br />
int pos=0;</p>
<p>int main()<br />
{<br />
cout &lt;&lt; &quot;Bitte geben sie eine beliebige Rechnung ein&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Erlaubte Zeichen sind: 0-9,+,-,*,/&quot; &lt;&lt;endl;<br />
cout &lt;&lt; &quot;Sowie 's' um die Eingabe zu beenden&quot; &lt;&lt;endl;<br />
while ((pos &lt;39) &amp;&amp; (striger==0))<br />
{<br />
if (pos%2==0)<br />
{<br />
cout &lt;&lt; &quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt; 1+pos;<br />
cout &lt;&lt; &quot;. Zahl ein: &quot;;<br />
cin &gt;&gt; zahlen[pos];<br />
zsuche ();<br />
pos=pos+1;<br />
}<br />
else<br />
{<br />
cout &lt;&lt;&quot;Bitte geben sie als &quot;;<br />
cout &lt;&lt;1+pos;<br />
cout &lt;&lt;&quot;. Rechenzeichen ein: &quot;;<br />
cin &gt;&gt; zeichen[pos];<br />
ssuche();<br />
pos=pos+1;<br />
}<br />
}<br />
system (&quot;pause&quot;);<br />
}<br />
void ssuche ()<br />
{<br />
char temp1=zeichen[pos];<br />
if (temp1 == 's')<br />
striger=1;<br />
}</p>
<p>void zsuche ()<br />
{<br />
double temp2=zahlen[pos];<br />
if (temp2 == 0)<br />
ztriger=1;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719610</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 13:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 13:37:40 GMT]]></title><description><![CDATA[<p>Könntest du bitte Einrückungen und Code-Tags verwenden. So ist dein Code nur schlecht lesbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719651</guid><dc:creator><![CDATA[Braunstein_out]]></dc:creator><pubDate>Tue, 02 Jun 2009 13:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 13:50:56 GMT]]></title><description><![CDATA[<p>Nicht Befehl, aber eine Funktion <a href="http://www.cppreference.com/wiki/c/other/exit?s=exit" rel="nofollow">exit()</a>, die einen Integer entgegen nimmt. Dies entspricht dem Fehlercode mit dem die Anwendung beendet wird, wie der Rückgabewert in main.</p>
<p>Fehlerausgaben macht man üblicherweise mit cerr (ungepuffert), statt mit cout.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719667</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 02 Jun 2009 13:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 13:58:02 GMT]]></title><description><![CDATA[<p>Vellas schrieb:</p>
<blockquote>
<p>Nicht Befehl, aber eine Funktion <a href="http://www.cppreference.com/wiki/c/other/exit?s=exit" rel="nofollow">exit()</a>, die einen Integer entgegen nimmt. Dies entspricht dem Fehlercode mit dem die Anwendung beendet wird, wie der Rückgabewert in main.</p>
</blockquote>
<p>Ganz schlechte Empfehlung. <code>exit</code> terminiert das Programm auf der Stelle, es werden keine Destruktoren aufgerufen und gibt dadurch keine Ressourcen mehr frei.</p>
<p>Deutlich besser ist, wenn du in der main Funktion ein return &lt;irgendeineZahl&gt; machst, wobei &lt;irgendeineZahl&gt; 0 ist, falls kein Fehler war oder ein Errorcode.</p>
<p>Falls du irgendwo im Programm (also in anderen Funktionen) bist, dann wirft man eine Exception. Diese kann man in <code>main</code> abfangen und einen Errorcode ausgeben oder man lässt sie durchlaufen, dann stürzt das Programm ab, aber alle Destruktoren werden aufgerufen.</p>
<p><a href="http://magazin.c-plusplus.net/artikel/Exception-Handling" rel="nofollow">http://magazin.c-plusplus.net/artikel/Exception-Handling</a><br />
<a href="http://magazin.c-plusplus.net/artikel/Modernes%20Exception-Handling%20Teil%201%20-%20Die%20Grundlagen" rel="nofollow">http://magazin.c-plusplus.net/artikel/Modernes%20Exception-Handling%20Teil%201%20-%20Die%20Grundlagen</a><br />
<a href="http://magazin.c-plusplus.net/artikel/Modernes%20Exception-Handling%20Teil%202%20-%20Hinter%20den%20Kulissen" rel="nofollow">http://magazin.c-plusplus.net/artikel/Modernes%20Exception-Handling%20Teil%202%20-%20Hinter%20den%20Kulissen</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719677</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 02 Jun 2009 13:58:02 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 14:20:36 GMT]]></title><description><![CDATA[<p>Das ist mir klar. Ich war/bin allerdings der Meinung, dass er vielleicht vorher andere Sachen festigen sollte, bevor er wieder mit neuen Sachen (Exceptions) konfrontiert wird.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719707</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 02 Jun 2009 14:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 14:27:14 GMT]]></title><description><![CDATA[<p>Vellas schrieb:</p>
<blockquote>
<p>Das ist mir klar. Ich war/bin allerdings der Meinung, dass er vielleicht vorher andere Sachen festigen sollte, bevor er wieder mit neuen Sachen (Exceptions) konfrontiert wird.</p>
</blockquote>
<p>Dann benutzt er eben Returnwerte. Immer noch besser, als sich rücksichtlose Mechanismen wie <code>exit()</code> anzugewöhnen. Zumal man sich - gerade als Anfänger - der Konsequenzen oft gar nicht bewusst ist. Ohne Dravere hätte er vielleicht nie erfahren, was <code>exit()</code> gefährlich macht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719713</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Jun 2009 14:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 14:38:21 GMT]]></title><description><![CDATA[<p>Wenn wir schon dabei sind, dann sollte man ihm an dieser Stelle auch noch von globalen Variablen abhalten. Ist auch böse und kann ebenfalls schnell mal ins Auge gehen. Und eventuell, dass system() auch nicht sehr ratsam ist (mal abgesehen davon das dafür die cstdlib eig. fehlt). Ein Pause kann man auch anders nachbilden (und wenn man die Anwendung statt mit einer beliebigen Taste mit Enter beenden muss).</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719721</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 02 Jun 2009 14:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 14:55:25 GMT]]></title><description><![CDATA[<p>Finds wirklich nett wieviel Sorgen ihr euch alle um mich macht :). Wohl auch nicht ganz unbegründet.<br />
Wobei die exit Funktion schon recht hard ist, im Grunde sollte einfach eine Fehlermeldung ausgegeben werden und das Programm nicht abstürzen bzw. einfach wieder von vorn beginnen.</p>
<p>Anderes Thema:<br />
Ich wollte zwischen drin eine double Zahl vergleichen:</p>
<p>double array [1]='0'<br />
ihr wisst schon was jetzt kommt, auch wenn an Postion 1 im array eine Null steht wird dieser Ausdruck nicht True, scheiß ungenauigkeit (wie ich eben gelernt habe).</p>
<p>Was wäre nach euer Meinung der beste Weg ein Double Wert mit einer ganzen Zahl zu vergleichen?</p>
<p>Ich hab schon dran gedacht einfach eine Art Grenzwert zu machen:<br />
double array [1]='0.0000000000000000001'<br />
wobei hier natürlich nicht ausgeschlossen sein kann das im array an der stelle noch eine längere komazahl steht die natürlich nicht Null ist.<br />
<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>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719737</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 14:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 15:00:08 GMT]]></title><description><![CDATA[<p>Normalerweise nimmt man dafür ein delta.</p>
<p>z.B hier:<br />
<a href="http://www.cplusplus.com/reference/clibrary/cfloat/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cfloat/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719744</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Jun 2009 15:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 15:23:41 GMT]]></title><description><![CDATA[<p>drakon! Doch nicht die C Makros <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="😃"
    /><br />
<a href="http://www.cplusplus.com/reference/std/limits/numeric_limits/" rel="nofollow">http://www.cplusplus.com/reference/std/limits/numeric_limits/</a></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21006">@blade1982</a>,<br />
Die 0 Darstellung von double sollte aber eigentlich ziemlich genau sein.<br />
Könnte es sein, dass du das folgende geschrieben hast?</p>
<pre><code class="language-cpp">double value = '0';
// statt
double value = 0.0;
</code></pre>
<p>'0' ist nämlich nicht 0, sondern der Buchstabe 0 und dieser hat normalerweise nicht den Wert 0.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719762</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 02 Jun 2009 15:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 15:33:02 GMT]]></title><description><![CDATA[<p>Ja habe ich ;), somit ist es überflüssig sich gedanken um den Vergleich zu machen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719770</guid><dc:creator><![CDATA[blade1982]]></dc:creator><pubDate>Tue, 02 Jun 2009 15:33:02 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Tue, 02 Jun 2009 15:40:43 GMT]]></title><description><![CDATA[<p>blade1982 schrieb:</p>
<blockquote>
<p>Ja habe ich ;), somit ist es überflüssig sich gedanken um den Vergleich zu machen ?</p>
</blockquote>
<p>Wenn double wirklich genau 0 ist, dann ist es genau 0, denn 0 kann ein double genau darstellen <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="😃"
    /><br />
Im allgemeinen ist es aber immer sinnvoll sich Gedanken über die Vergleiche bei Gleitkommazahlen zu machen. Denn nach verschiedenen Rechenoperationen, wenn das Ergebnis wieder 0 ergeben sollte, muss das nicht unbedingt der Fall sein <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>Im allgemeinen sagt man eigentlich, dass man double und float Werte nicht auf Gleichheit prüfen sollte, sondern immer mit grösser- oder kleiner-als Vergleichen. Wenn man doch mal auf Gleichheit prüfen sollte, dann ist es eben sinnvoll das Delta hinzu zu nehmen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719775</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 02 Jun 2009 15:40:43 GMT</pubDate></item><item><title><![CDATA[Reply to Selbstgemachte Array suche on Wed, 03 Jun 2009 12:53:37 GMT]]></title><description><![CDATA[<p>Und wieder was gelernt.<br />
Das mit dem double 0 vergleich mit 0.0 hab ich nicht Ansatzweise im Internet gefunden. Könnte aber auch an meinen Suchwort gelegen haben, naja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1720359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1720359</guid><dc:creator><![CDATA[blade1992]]></dc:creator><pubDate>Wed, 03 Jun 2009 12:53:37 GMT</pubDate></item></channel></rss>