<?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[C++ falsche Abzweigung bei if&#x2F;else]]></title><description><![CDATA[<p>Hallo Leute,<br />
schreibe gerade an einem größerem Projekt(Konsolenanwendung) in Visual C++ 2010 (64 bit Betriebssystem). Jedoch hakt es gewaltig an einem if/else Block im Code(Abfrage beim Anwender per String: Wenn Benutzer Ja eingegeben hat, tuh dies, wenn nicht tuh das. Das Problem trat erst vorhin auf. Davor funktioniert alles einwandfrei. Das Programm ignoriert jedoch nun jegliche Eingabe und bleibt behaarlich im if- zweig. Habe dann ein Debugprojekt erstellt und das Projekt auf folgenden Code zum Test geschrumpft:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;string&gt;

using namespace std;
string input;

int main () 
{
	cout &lt;&lt; &quot;Ja oder nein&quot; &lt;&lt; endl;
	cin &gt;&gt; input;
	if(input == &quot;ja&quot; || &quot;Ja&quot; || &quot;JA&quot;)
	{
		cout &lt;&lt; &quot;JA&quot; &lt;&lt; endl;
		system(&quot;PAUSE&quot;);
		return 0;
	}else{
		cout &lt;&lt; &quot;NEIN&quot; &lt;&lt; endl;
		system(&quot;PAUSE&quot;);
		return 0;
		 }
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/276032/c-falsche-abzweigung-bei-if-else</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 13:30:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276032.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Oct 2010 18:34:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 18:34:56 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
schreibe gerade an einem größerem Projekt(Konsolenanwendung) in Visual C++ 2010 (64 bit Betriebssystem). Jedoch hakt es gewaltig an einem if/else Block im Code(Abfrage beim Anwender per String: Wenn Benutzer Ja eingegeben hat, tuh dies, wenn nicht tuh das. Das Problem trat erst vorhin auf. Davor funktioniert alles einwandfrei. Das Programm ignoriert jedoch nun jegliche Eingabe und bleibt behaarlich im if- zweig. Habe dann ein Debugprojekt erstellt und das Projekt auf folgenden Code zum Test geschrumpft:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;string&gt;

using namespace std;
string input;

int main () 
{
	cout &lt;&lt; &quot;Ja oder nein&quot; &lt;&lt; endl;
	cin &gt;&gt; input;
	if(input == &quot;ja&quot; || &quot;Ja&quot; || &quot;JA&quot;)
	{
		cout &lt;&lt; &quot;JA&quot; &lt;&lt; endl;
		system(&quot;PAUSE&quot;);
		return 0;
	}else{
		cout &lt;&lt; &quot;NEIN&quot; &lt;&lt; endl;
		system(&quot;PAUSE&quot;);
		return 0;
		 }
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1970561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970561</guid><dc:creator><![CDATA[videotuner]]></dc:creator><pubDate>Mon, 25 Oct 2010 18:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 18:40:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(input == &quot;ja&quot; || &quot;Ja&quot; || &quot;JA&quot;)
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code class="language-cpp">if(input == &quot;ja&quot; || input == &quot;Ja&quot; || input == &quot;JA&quot;)
</code></pre>
<p><strong>Edit:</strong><br />
BTW: Du könntest auch zuerst den eingelesenen string mit std::tolower(..) klein machen und danach nur noch ein Vergleich durchführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970563</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Mon, 25 Oct 2010 18:40:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 18:41:28 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(input == &quot;ja&quot; || &quot;Ja&quot; || &quot;JA&quot;)
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code class="language-cpp">if(input == &quot;ja&quot; || input == &quot;Ja&quot; || input == &quot;JA&quot;)
</code></pre>
</blockquote>
<p>Ich liefer mal das &quot;warum&quot; nach:</p>
<p>&quot;Ja&quot; und &quot;JA&quot; sind char* - Literale. Die ||-Operatoren erwarten boolsche Werte. Pointer (also auch char*) können implizit in bool konvertiert werden, wobei alles was nicht NULL ist true ergibt. Deine Abfrage ist also &quot;if (input == &quot;ja&quot; || true || true) -&gt; also immer true.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970567</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 25 Oct 2010 18:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 18:53:55 GMT]]></title><description><![CDATA[<p>Alles klar, vielen Dank, jetzt klappt's. Und danke für den Tipp von theta.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970577</guid><dc:creator><![CDATA[videotuner]]></dc:creator><pubDate>Mon, 25 Oct 2010 18:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 19:11:19 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(input == &quot;ja&quot; || input == &quot;Ja&quot; || input == &quot;JA&quot;)
{
  cout &lt;&lt; &quot;JA&quot; &lt;&lt; endl;
  system(&quot;PAUSE&quot;);
  return 0;
}
else
{
  cout &lt;&lt; &quot;NEIN&quot; &lt;&lt; endl;
  system(&quot;PAUSE&quot;);
  return 0;
}
return 0;
</code></pre>
<p>schickerer Code:</p>
<pre><code class="language-cpp">transform(input, input+2, input, toupper);
std::cout &lt;&lt; input == &quot;JA&quot; ? &quot;JA&quot; : &quot;NEIN&quot;;
system(&quot;PAUSE&quot;);
return 0;
</code></pre>
<p>BTW:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html</a> schrieb:</p>
<blockquote>
<p>Achtung: Der Aufruf von system(&quot;pause&quot;) ist kein adäquater Ersatz! Warum system() grundsätzlich gemieden werden sollte (nicht nur weil es verdammt langsam ist), findet ihr in diesem FAQ-Beitrag: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html</a></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1970589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970589</guid><dc:creator><![CDATA[BTW_ FAQ]]></dc:creator><pubDate>Mon, 25 Oct 2010 19:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 19:23:43 GMT]]></title><description><![CDATA[<p>Weil ich es grad sehe: Vielleicht solltest Du Dir auch klar darüber werden, wann man lokale und wann globale Variablen verwendet. In diesem Spielzeug-Code hier ist es zwar ziemlich egal für die Funktion des Programms, aber es würde sich schon vom Stil her anbieten 'input' lokal zu halten. Das 'system(&quot;PAUSE&quot;);' ist auch <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html" rel="nofollow">nicht so schön</a> und kann mit den standardisierten Stream-Operationen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html" rel="nofollow">nachgebildet</a> werden. Wie gesagt, hier ist es nicht so wahnsinnig schlimm, aber für die Zukunft kann man sich das mal merken, bevor man sich Murks angewöhnt <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="😉"
    /> . Am besten wäre natürlich noch das kompilierte Programm in einer Konsole so zu starten, dass man nicht erst überflüssigerweise pausieren muss um das Ergebnis zu sehen. Beim Visual Studio und anderen IDEs gibt es da IIRC eine Option und zur Not kann man es selber direkt aus einer offenen Konsole starten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970590</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Mon, 25 Oct 2010 19:23:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 19:53:57 GMT]]></title><description><![CDATA[<p>Das mit der globalen Variable liegt daran, dass ich in dem eigentlichen Programm mehrere Funktionen habe, die auf die Variable Input zugreifen müssen. system(&quot;PAUSE&quot;); habe ich deshalb verwendet, weil ich andere Möglichkeiten noch nicht kannte. Lasse mich aber gern belehren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970610</guid><dc:creator><![CDATA[videotuner]]></dc:creator><pubDate>Mon, 25 Oct 2010 19:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 20:08:38 GMT]]></title><description><![CDATA[<p>videotuner schrieb:</p>
<blockquote>
<p>Lasse mich aber gern belehren.</p>
</blockquote>
<p>Dann kannste dir ja mal dies hier durchlesen <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><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970619</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 25 Oct 2010 20:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Mon, 25 Oct 2010 20:10:19 GMT]]></title><description><![CDATA[<p>videotuner schrieb:</p>
<blockquote>
<p>Das mit der globalen Variable liegt daran, dass ich in dem eigentlichen Programm mehrere Funktionen habe, die auf die Variable Input zugreifen müssen.</p>
</blockquote>
<p>Umso schlimmer. Da gibt es viel bessere, viel weniger fehleranfällige Methoden für.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1970621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970621</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 25 Oct 2010 20:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Tue, 26 Oct 2010 07:47:23 GMT]]></title><description><![CDATA[<p>videotuner schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(input == &quot;ja&quot; || &quot;Ja&quot; || &quot;JA&quot;)
</code></pre>
</blockquote>
<p>Jaah, manchmal wünsche ich mir echt sowas machen zu können. Fein und klein halt <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/1970706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1970706</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 26 Oct 2010 07:47:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Tue, 26 Oct 2010 19:56:39 GMT]]></title><description><![CDATA[<p>Ein</p>
<pre><code class="language-cpp">if(collection(&quot;Ja&quot;, &quot;ja&quot;, &quot;JA&quot;).contains(input))
</code></pre>
<p>liegt durchaus im Bereich des Machbaren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1971139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1971139</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 26 Oct 2010 19:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Wed, 27 Oct 2010 08:36:03 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Ein</p>
<pre><code class="language-cpp">if(collection(&quot;Ja&quot;, &quot;ja&quot;, &quot;JA&quot;).contains(input))
</code></pre>
<p>liegt durchaus im Bereich des Machbaren.</p>
</blockquote>
<p>Leider viel zu umständlich. Natürlich kann ich mir viel Funktionalität selber nachbilden, aber solche &quot;menschlich gesehenen&quot; einfachen Konstrukte sollten lieber build-In sein.</p>
<p>Sowas wäre echt viel schöner:</p>
<pre><code class="language-cpp">if(0 &lt; zahl &lt; 15)
if(zahl == 5 || 3)
if(str != &quot;Y&quot; || &quot;N&quot;)
</code></pre>
<p>Statt:</p>
<pre><code class="language-cpp">if(variable(zahl).isBetween(0,5))

if(variable(zahl).contains(3,5))
if(variable(zahl).contains(3,5,6,23))

if(variable(str).containsNot(&quot;Y&quot;,&quot;N&quot;))
if(variable(str).containsNot(&quot;Y&quot;,&quot;N&quot;,&quot;y&quot;,&quot;n&quot;))
</code></pre>
<p>Naja, auch geschmacksache <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="😉"
    /> Wobei, wenn ich die variable().func() Konstrukte sehe, mir das leserlich mehr gefällt, als die kryptischen Zeichen oben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1971281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1971281</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Oct 2010 08:36:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Wed, 27 Oct 2010 08:59:00 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Sowas wäre echt viel schöner:</p>
<pre><code class="language-cpp">if(zahl == 5 || 3)
</code></pre>
</blockquote>
<p>Aber geht halt nicht, weil</p>
<pre><code class="language-cpp">bool b,c,d;
...
if(b == c || d)
</code></pre>
<p>Dagegen könnte man aber ein neues Sprachmittel einführen:</p>
<pre><code class="language-cpp">if(b == c || b==d || b==e)
</code></pre>
<p>bekommt die abkürzende Schreibweise</p>
<pre><code class="language-cpp">if( (b ==) c || d || e)
</code></pre>
<p>Natürlich auch alle anderen Operatoren zulassen. Wie schön das wird!<br />
Statt dem häßlichen</p>
<pre><code class="language-cpp">if( (pow(a,2) + pow(b,2) &lt;= pow(c,2) )
</code></pre>
<p>Kann man jetzt gleichen Code zusammenziehen, der irgendwie mit allen im Bedinungsausdruck beteiligten Variablen zu tun hat.</p>
<pre><code class="language-cpp">if( ( pow( ) a+b==c ( ,2) ) )
</code></pre>
<p>Natürlich auch mit der sqrt-Variante des Satzes des Pythagoras.</p>
<pre><code class="language-cpp">if( sqrt( ( pow( ) a+b ( ,2) ) )&lt;=c )
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1971293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1971293</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 27 Oct 2010 08:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to C++ falsche Abzweigung bei if&#x2F;else on Wed, 27 Oct 2010 09:48:33 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Statt:</p>
<pre><code class="language-cpp">[..]
if(variable(zahl).isBetween(0,5))
[..]
if(variable(str).containsNot(&quot;Y&quot;,&quot;N&quot;,&quot;y&quot;,&quot;n&quot;))
[..]
</code></pre>
</blockquote>
<p>Du kannst ja auch<br />
if(inRange(0, zahl, 5))<br />
und<br />
if(str == multiCompare(&quot;Y&quot;,&quot;N&quot;,&quot;y&quot;,&quot;n&quot;))<br />
machen.</p>
<p>wobei multiCompare halt kein schöner name ist...<br />
das inRange verwende ich zB sehr oft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1971317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1971317</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 27 Oct 2010 09:48:33 GMT</pubDate></item></channel></rss>