<?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[Datentyp vergleich - möglich oder nicht?]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe ein Programm geschrieben welches ein Menü beinhaltet.Jedes einzelne Menü wird über eine Zahl ausgewählt(Integer-Wert).Nun habe ich das Problem wenn ich einen Buchstaben mir das Programm(in einer Endlosschleife)meine eingebaute Fehlermeldung ausgibt.Nunj meine Frage: Gibt es soetwas wie einen Datentypenvergleich?Also z.B.</p>
<pre><code class="language-cpp">//Pseudo

if (auswahl != int)
        {
          cout &lt;&lt; &quot;Geb doch kein Buchstaben ein ;-)&quot;;
        }
</code></pre>
<p>Wenn jemand Tipps für mich hat wäre ich dankbar <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/topic/211460/datentyp-vergleich-möglich-oder-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 06:26:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211460.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Apr 2008 13:22:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:22:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe ein Programm geschrieben welches ein Menü beinhaltet.Jedes einzelne Menü wird über eine Zahl ausgewählt(Integer-Wert).Nun habe ich das Problem wenn ich einen Buchstaben mir das Programm(in einer Endlosschleife)meine eingebaute Fehlermeldung ausgibt.Nunj meine Frage: Gibt es soetwas wie einen Datentypenvergleich?Also z.B.</p>
<pre><code class="language-cpp">//Pseudo

if (auswahl != int)
        {
          cout &lt;&lt; &quot;Geb doch kein Buchstaben ein ;-)&quot;;
        }
</code></pre>
<p>Wenn jemand Tipps für mich hat wäre ich dankbar <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/1496881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496881</guid><dc:creator><![CDATA[stack]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:25:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if (typeid(auswahl) != typeid(int)) 
        { 
        cout &lt;&lt; &quot;Geb doch kein Buchstaben ein ;-)&quot;; 
        }
</code></pre>
<p>wäre ein Datentypvergleich, aber ich versteh deine Beschreibung der Anwendung nicht so ganz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496884</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:26:10 GMT]]></title><description><![CDATA[<p>wenn das einlesen als integer fehlschlägt, dann setzt dein eingabestream sein failbit (idR). d.h. mit einer abfrage à la</p>
<pre><code class="language-cpp">int input;
if (cin &gt;&gt; input)
{
   //... hat geklappt!
}
</code></pre>
<p>wirst du zufrieden sein. die &quot;falschen&quot; daten bleiben aber dann im stream. du kannst sie dann entweder ignorieren oder als string auslesen und dem benutzer sagen, dass die eingabe böse war, auf jeden fall musst du aber das failbit zurücksetzen.</p>
<pre><code class="language-cpp">else
{ 
   cin.clear();
   string tmp;
   cin &gt;&gt; tmp;
   cout &lt;&lt; &quot;Fehler: \&quot;&quot; &lt;&lt; tmp &lt;&lt; &quot;\&quot; - Eingabe ist wirr.\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496886</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:28:51 GMT]]></title><description><![CDATA[<p>So z.B.:</p>
<pre><code class="language-cpp">int eingabe;
if( !(std::cin &gt;&gt; eingabe) )
{
    std::cout &lt;&lt; &quot;Bitte nur Zahlen!\n&quot;;
    //Fehlerstati zuruecksetzen
    std::cin.clear();
    //Fehlerhafte Zeichen im Stream ueberspringen
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');

}
</code></pre>
<p>PS: (cin &gt;&gt; Typ) Gibt false zurück, wenn der Input nicht in den passenden Typen konvertiert werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496887</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:28:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:29:14 GMT]]></title><description><![CDATA[<p>stack schrieb:</p>
<blockquote>
<p>Nunj meine Frage: Gibt es soetwas wie einen Datentypenvergleich?</p>
</blockquote>
<p>Auch wenn es nicht das ist was dein Problem darstellt:</p>
<p>Stichwort: RTTI<br />
Da C++ aber Typsicher ist funktioniert dies aber nur in Zusammenhang mit Polymorphie.</p>
<p>Dein Problem solltest du durch überprüfen des Eingabestreams lösen können. Wenn du über cin eine int-Variable füllst bleibt die auch int wenn du einen Text eingibst. Aber der cin-Stream wird ungültig...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496889</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:29:51 GMT]]></title><description><![CDATA[<p>Du weisst doch, welchen Datentyp das hat, worin Du einliest. Wenn nach dem &gt;&gt; eine int-Variable steht, ist das eben int.</p>
<p>Was Du möchtest, ist vermutlich das Ergebnis von cin &gt;&gt; variable zu überprüfen. Wenn das false liefert, kannst Du den Fehlerstatus zurücksetzen, den Eingabepuffer leeren und es nochmal versuchen. In etwa so:</p>
<pre><code class="language-cpp">int i;
while (!(cin &gt;&gt; i)) {
    cout &lt;&lt; &quot;Das war kein int!&quot; &lt;&lt; endl;
    cin.clear();
    cin.ignore(10000, '\n');
}
cout &lt;&lt; &quot;DAS war ein int: &quot; &lt;&lt; i &lt;&lt; endl;
</code></pre>
<p>Nur der Vollständigkeit (ich möchte niemanden überfordern): Die 10000 im ignore-Aufruf sagt aus &quot;ignoriere bis zu 10000 Zeichen oder bis Du \n gelesen hast&quot;. Der Wert könnte (sollte) auch eine größere Zahl sein, z.B. das Maximum std::numeric_limits&lt;streamsize&gt;::max().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496891</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:29:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datentyp vergleich - möglich oder nicht? on Wed, 23 Apr 2008 13:45:18 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe!</p>
<p>Hab die Variante von LordJaxom genommen und klappt gut!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496912</guid><dc:creator><![CDATA[stack]]></dc:creator><pubDate>Wed, 23 Apr 2008 13:45:18 GMT</pubDate></item></channel></rss>