<?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: &amp;quot;error: switch quantity not an integer&amp;quot;??]]></title><description><![CDATA[<p>Hallo ich habe hier ein kleines Programm:</p>
<pre><code class="language-cpp">int main()
{
    char eingabe[];

    while(1){
        printf(&quot;Personenverwaltung:\n&quot;);
        printf(&quot;Ihre Eingabe:\n&quot;);
        printf(&quot;S: Personen Suchen\n&quot;);
        printf(&quot;A: Personen anzeigen\n&quot;);
        printf(&quot;H: Personen Hinzufügen\n&quot;);
        printf(&quot;E: Personen Entfernen\n&quot;);
        printf(&quot;B: Programm beenden\n&quot;);
        scanf(&quot;%c&quot;, &amp;eingabe); //Zeile 29

        switch(eingabe){ //Zeile 31
            case 'S':

            break;
            case 'A':

            break;
            case 'H':

            break;
            case 'E':

            break;
            case 'B':
                return 0;
            break;
            default:
                printf(&quot;Fehler: ungueltige Eingabe&quot;);
            break;
        }
    }

    return 0;
}
</code></pre>
<p>Und wenn ich das ganze Compilieren möchte bekomme ich diesen Fehler:<br />
main.c:31: error: switch quantity not an integer<br />
und diese Warnung:<br />
main.c:29: warning: char format, different type arg (arg 2)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193154/c-quot-error-switch-quantity-not-an-integer-quot</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 22:18:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193154.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Sep 2007 22:42:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sat, 22 Sep 2007 22:42:57 GMT]]></title><description><![CDATA[<p>Hallo ich habe hier ein kleines Programm:</p>
<pre><code class="language-cpp">int main()
{
    char eingabe[];

    while(1){
        printf(&quot;Personenverwaltung:\n&quot;);
        printf(&quot;Ihre Eingabe:\n&quot;);
        printf(&quot;S: Personen Suchen\n&quot;);
        printf(&quot;A: Personen anzeigen\n&quot;);
        printf(&quot;H: Personen Hinzufügen\n&quot;);
        printf(&quot;E: Personen Entfernen\n&quot;);
        printf(&quot;B: Programm beenden\n&quot;);
        scanf(&quot;%c&quot;, &amp;eingabe); //Zeile 29

        switch(eingabe){ //Zeile 31
            case 'S':

            break;
            case 'A':

            break;
            case 'H':

            break;
            case 'E':

            break;
            case 'B':
                return 0;
            break;
            default:
                printf(&quot;Fehler: ungueltige Eingabe&quot;);
            break;
        }
    }

    return 0;
}
</code></pre>
<p>Und wenn ich das ganze Compilieren möchte bekomme ich diesen Fehler:<br />
main.c:31: error: switch quantity not an integer<br />
und diese Warnung:<br />
main.c:29: warning: char format, different type arg (arg 2)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370858</guid><dc:creator><![CDATA[lord_fritte]]></dc:creator><pubDate>Sat, 22 Sep 2007 22:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sat, 22 Sep 2007 22:59:12 GMT]]></title><description><![CDATA[<p><code>s/char eingabe[];/char eingabe;/</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370861</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sat, 22 Sep 2007 22:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sat, 22 Sep 2007 23:08:47 GMT]]></title><description><![CDATA[<p>Was ich seltsam finde ist, wenn ich das Programm starte, sehe ich das:</p>
<pre><code>Personenverwaltung:
Ihre Eingabe:
S: Personen Suchen
A: Personen anzeigen
H: Personen Hinzuf³gen
E: Personen Entfernen
B: Programm beenden
</code></pre>
<p>Was ja auch so sein soll, wenn ich jetzt aber etwas Eingebe, sehe ich das:</p>
<pre><code>Personenverwaltung:
Ihre Eingabe:
S: Personen Suchen
A: Personen anzeigen
H: Personen Hinzuf³gen
E: Personen Entfernen
B: Programm beenden
Fehler: ungueltige EingabePersonenverwaltung:
Ihre Eingabe:
S: Personen Suchen
A: Personen anzeigen
H: Personen Hinzuf³gen
E: Personen Entfernen
B: Programm beenden
</code></pre>
<p>liegt das daran das der 2 zeichen aufnimmt, und durch die while schleife auch 2 Zeichen nacheinander in die Variable legt?<br />
Lässt sich das irgendwie verhindern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370863</guid><dc:creator><![CDATA[lord_fritte]]></dc:creator><pubDate>Sat, 22 Sep 2007 23:08:47 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sun, 23 Sep 2007 08:11:07 GMT]]></title><description><![CDATA[<p>Was der Vorredner dir versucht hat zu erklären ist, dass du versuchst Äpfel mit Birnen zu vergleichen.</p>
<p>Du definierst die Variable für die Eingabe als ein char-Array (bzw. einen Zeiger auf ein char-Array).</p>
<p>Mit dem switch-statement <em>switch(eingabe)</em> versuchtest du nun Zeiger zu vergleichen, keine Zeichen. Wenn du dir ganz sicher bist, dass das erste Zeichen in deinem Array ein brauchbares Zeichen enthält, kannst du mit eingabe[0] darauf zugreifen.</p>
<p>Mit dem Wissen, dass eingabe ein Zeiger ist, solltest du nun deine Warnung und den Fehler beseitigen können.</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370922</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Sun, 23 Sep 2007 08:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sun, 23 Sep 2007 08:36:13 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cctype&gt;
#include &lt;limits&gt;

int main()
{
    char input = 'c';

    while (input != 'b')
	{
		std::cout	&lt;&lt; &quot;Personenverwaltung:\n&quot;
					&lt;&lt; &quot;S: Personen suchen\n&quot;
					&lt;&lt; &quot;A: Personen anzeigen\n&quot;
					&lt;&lt; &quot;H: Personen hinzufügen\n&quot;
					&lt;&lt; &quot;E: Personen entfernen\n&quot;
					&lt;&lt; &quot;B: Programm beenden\n&quot;
					&lt;&lt; &quot;Auswahl: &quot; &lt;&lt; std::flush;

		while (!(std::cin &gt;&gt; input)) { std::cin.sync(); std::cin.clear(); std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n'); }

		char input_low = static_cast&lt;char&gt;(std::tolower(static_cast&lt;int&gt;(input)));
		switch (input_low)
		{
		case 's':
			{
				// person_search
			} break;
		case 'a':
			{
				// person_show
			} break;
		case 'h':
			{
				// person_add
			} break;
		case 'e':
			{
				// person_delete
			} break;
        case 'b': // nichts tun
			break;
		default:
			std::cerr &lt;&lt; &quot;FEHLER: Ungueltige Eingabe!&quot; &lt;&lt; std::endl;
            break;
        }
    }
}
</code></pre>
<p>... wenn de was nicht verstehst... sagen!<br />
Vor allem hab ich mal alles auf Streams umgestellt, da du ja hier im C++-Forum bist. Deinen eigentlichen Fehler hab ich auch direkt rausgemacht. Ne Endlos-Schleife ist immer unschön und wird dir auch von nem anständigen Kompiler angemeckert. Von daher mach das lieber mit ner Abbruchbedingung ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370930</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 23 Sep 2007 08:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Sun, 23 Sep 2007 11:03:34 GMT]]></title><description><![CDATA[<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370979</guid><dc:creator><![CDATA[lord_fritte]]></dc:creator><pubDate>Sun, 23 Sep 2007 11:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Mon, 24 Sep 2007 14:52:41 GMT]]></title><description><![CDATA[<p>ich &quot;spiele&quot; jetzt schon ne weile mit c/c++,<br />
aber trotzdem gibts immer wieder sachen die ich nich verstehe...</p>
<p>zB beim ersten post,</p>
<pre><code class="language-cpp">int main()
{
    char eingabe[]; // 1.

    while(1){
        printf(&quot;Personenverwaltung:\n&quot;);
        printf(&quot;Ihre Eingabe:\n&quot;);
        printf(&quot;S: Personen Suchen\n&quot;);
        printf(&quot;A: Personen anzeigen\n&quot;);
        printf(&quot;H: Personen Hinzufügen\n&quot;);
        printf(&quot;E: Personen Entfernen\n&quot;);
        printf(&quot;B: Programm beenden\n&quot;);
        scanf(&quot;%c&quot;, &amp;eingabe); 

        switch(eingabe){ 
            case 'S':

            break;
            case 'A':

            break;
            case 'H':

            break;
            case 'E':

            break;
            case 'B':
                return 0; // 2.
            break;
            default:
                printf(&quot;Fehler: ungueltige Eingabe&quot;);
            break;
        }
    }

    return 0;
}
</code></pre>
<p>1. wie groß ist das array?<br />
so wie ich das bis jetzt verstanden hab, wäre das doch das selbe wie ein char array[0], wenn die größe des arrays beim anlegen angegeben wird???</p>
<p>oder wie ist das zu interpretieren? char array[] == char * ? aber wo zeigt das dann hin?</p>
<p>oder macht der compiler standartmäßig ein char array[1] draus?</p>
<p>2. ist doch ne abbruchbedingung? ist das nicht egal ob die in der schleife oder im kopf steht?</p>
<p>gruß ToM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1371716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1371716</guid><dc:creator><![CDATA[viele_fragezeichen]]></dc:creator><pubDate>Mon, 24 Sep 2007 14:52:41 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Mon, 24 Sep 2007 15:06:35 GMT]]></title><description><![CDATA[<p>viele_fragezeichen schrieb:</p>
<blockquote>
<p>...aber trotzdem gibts immer wieder sachen die ich nich verstehe...</p>
</blockquote>
<p>Dann halt' Dich doch an die Empfehlungen hier. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
(D)Evils Code wäre mal ein guter Anfang.</p>
<p>Zu den konkreten Fragen:<br />
1. ist einfach undefiniert/falsch in C++ - sollte Dir Dein C++-Compiler auch sagen.<br />
Was schon geht, ist die direkte Initialisierung <code>char eingabe[] = &quot;Test&quot;;</code> , damit ist eingabe 5 Byte lang.<br />
2. mit return verlässt Du die Funktion (hier main()) und nicht nur die Schleife.<br />
Das anschließende &quot;break&quot; ist definitiv überflüssig (&quot;unreachable&quot;).<br />
3. Versuche besser nicht, C und C++ über einen Kamm zu scheren - da gibt es zu viele Unterschiede (was ein C++-Compiler &quot;schluckt&quot;, muss noch lange nicht durch einen C-Compiler gehen und anders herum).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1371724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1371724</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 24 Sep 2007 15:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Mon, 24 Sep 2007 21:27:05 GMT]]></title><description><![CDATA[<p>ich hab ja nich gesagt, dass ich anders machen will ^^<br />
mir ging es nur ums verständnis,</p>
<p>1. in diesem fall hätte, wie ich erwartet habe, auch das &quot;switch(eingabe[0])&quot; nicht funktioniert, war mir nur nicht wirklich sicher ob ich richtig &quot;geraten&quot; habe <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>2. ok, klingt einläuchtend.</p>
<p>3. das hab ich teilweise schon mitbekommen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f607.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_halo"
      title="O:-)"
      alt="😇"
    /><br />
ich hab mit c angefangen und versuche jetzt &quot;langsam&quot; auf c++ umzusteigen, is nur schwerer als ich dachte, irgendwie is die gewohnheit doch stärker als erwartet<br />
und dann nimmt man doch wieder char statt std::string, malloc statt new, (int) statt static_cast&lt;int&gt;...</p>
<p>aber ich versuch mich zu bessern <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>gruß<br />
ToM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372007</guid><dc:creator><![CDATA[frage_beantwortet]]></dc:creator><pubDate>Mon, 24 Sep 2007 21:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to C: &amp;quot;error: switch quantity not an integer&amp;quot;?? on Tue, 25 Sep 2007 08:30:09 GMT]]></title><description><![CDATA[<p>frage_beantwortet schrieb:</p>
<blockquote>
<p>...<br />
aber ich versuch mich zu bessern <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>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Recht so ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> <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="😉"
    /> <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>Übrigens: Wenn Du konsequent auf string, cout, vector, ... umsteigst, wirst Du bald (und zwar schneller als Du denkst) deren Vorteile zu schätzen lernen.<br />
Klar - man muss sich erstmal ein wenig einlesen und umgewöhnen, aber wenn man mal betrachtet, was man da &quot;geschenkt&quot; bekommt (gerade in Sachen Komfort, Übersichtlichkeit und Sicherheit), wird man es bald nicht mehr missen mögen.<br />
Aus meiner Erfahrung (auch von C nach C++ kommend) kann man sich mit C++-Mitteln besser/schneller auf die wirklich fachlichen Aufgabenstellungen stürzen und hängt nicht so sehr in der Technik fest.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372159</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 25 Sep 2007 08:30:09 GMT</pubDate></item></channel></rss>