<?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[Fehler: Case bypasses initialisation of a local varialbe in funktion main()]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin so langsam echt am verzweifeln und hoff hier kann mir jemand weiter helfen.<br />
Ich muss ein Kursverwaltung fürs Studium schreiben.Soweit steht sie auch schon. allerdings bringt mir mein Compiler immer weinen fehler in einer einer Zeile (case 2 vom unten stehenden Code). Wenn ich den case 2 lösche wandert der Fehler zu case 3 ... Ich hab jetzt schon diverse Beiträge in verschiedenen Foren gelesen allerdings hatt mir das bisher nichts gebracht. Darum jetzt meine Frage an euch:<br />
Kann von euch irgendjemand hier den Fehler entdecken und mir sagen wie ich ihn behebe?<br />
Vielen Dank schonmal!</p>
<pre><code>//Menue

#include &quot;Header.h&quot;
#include &lt;ctype.h&gt;
using namespace std;

// Auswahlmenue für die Seminar Liste

int main(){

Test T1;					//erstellen eines Test Objektes

int eingabe=0;

while (eingabe!=8){
	T1.Menue();				//Aufruf Menue und Eingabeaufforderung
	cin  &gt;&gt; eingabe;

    if (!cin.good()) {
		cin.clear();
        cin.sync(); 		//Puffer der Tastatureingabe leeren
    }

	switch(eingabe){

	  case '1':				// Seminare anzeigen
	  		system(&quot;cls&quot;);
	  		int auswahl = 0;

	  		cout &lt;&lt; &quot;Bitte wählen sie Teilnehmer(1) oder Seminar(2) anlegen\n&quot; &lt;&lt; endl;
	  		cin &gt;&gt; auswahl;

	  		if (auswahl == 1){
	  			cout &lt;&lt; &quot;Gewaehlte Option: Seminare anzeigen\n&quot; &lt;&lt;endl;
		    	T1.ZeigeSeminar();
		    	T1.Auswahl();
			}

		    if (auswahl == 2){
		    	cout &lt;&lt;&quot;Gewaehlte Option: Teilnehmere anzeigen\n&quot; &lt;&lt;endl;
				T1.ZeigeTeilnehmer();
				T1.Auswahl();
			}

			else{
				cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
			}

		    break;

      case '2':		// Anzahl Elemente
      		system(&quot;cls&quot;);
		    cout &lt;&lt;&quot;Gewaehlte Option: Anzahl der Eintraege in der Liste ausgeben\n&quot; &lt;&lt;endl;
	        cout &lt;&lt; &quot; Die Liste enthaelt &quot; &lt;&lt;  T1.Anzahl() &lt;&lt; &quot; Elemente\n&quot; &lt;&lt; endl;
		    T1.Auswahl();
		    break;

	  case '3':				// Seminar bestimmen
	  		system(&quot;cls&quot;);

	  		cout &lt;&lt; &quot;Bitte wählen sie Teilnehmer(1) oder Seminar(2) bestimmen\n&quot; &lt;&lt; endl;
	  		cin &gt;&gt; auswahl;

	  		if (auswahl == 1){
			    cout &lt;&lt;&quot;Gewaehlte Option: Ein Seminar bestimmen\n&quot; &lt;&lt;endl;
			    T1.SeminarBestimmen();
			    T1.Auswahl();
			}

		    if (auswahl == 2){
			    cout &lt;&lt;&quot;Gewaehlte Option: Ein Teilnehmer bestimmen\n&quot; &lt;&lt;endl;
			    T1.TeilnehmerBestimmen();
			    T1.Auswahl();
			}

			else{
				cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
			}

		    break;

	default:
		  cout &lt;&lt; &quot;Fehler: Anwendungsfehler!\n\nBitte Funktion waehlen!\n\n&quot; &lt;&lt; endl;
	}
}
return 0;
}
</code></pre>
<p>Ich hab die Cases 4-8 gelöscht, da ich denke sie sind unrelevant... wenn nicht bitte melden!</p>
<p>schöne Grüße<br />
Nina</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272247/fehler-case-bypasses-initialisation-of-a-local-varialbe-in-funktion-main</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 00:18:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272247.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Aug 2010 10:38:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler: Case bypasses initialisation of a local varialbe in funktion main() on Fri, 13 Aug 2010 10:38:26 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin so langsam echt am verzweifeln und hoff hier kann mir jemand weiter helfen.<br />
Ich muss ein Kursverwaltung fürs Studium schreiben.Soweit steht sie auch schon. allerdings bringt mir mein Compiler immer weinen fehler in einer einer Zeile (case 2 vom unten stehenden Code). Wenn ich den case 2 lösche wandert der Fehler zu case 3 ... Ich hab jetzt schon diverse Beiträge in verschiedenen Foren gelesen allerdings hatt mir das bisher nichts gebracht. Darum jetzt meine Frage an euch:<br />
Kann von euch irgendjemand hier den Fehler entdecken und mir sagen wie ich ihn behebe?<br />
Vielen Dank schonmal!</p>
<pre><code>//Menue

#include &quot;Header.h&quot;
#include &lt;ctype.h&gt;
using namespace std;

// Auswahlmenue für die Seminar Liste

int main(){

Test T1;					//erstellen eines Test Objektes

int eingabe=0;

while (eingabe!=8){
	T1.Menue();				//Aufruf Menue und Eingabeaufforderung
	cin  &gt;&gt; eingabe;

    if (!cin.good()) {
		cin.clear();
        cin.sync(); 		//Puffer der Tastatureingabe leeren
    }

	switch(eingabe){

	  case '1':				// Seminare anzeigen
	  		system(&quot;cls&quot;);
	  		int auswahl = 0;

	  		cout &lt;&lt; &quot;Bitte wählen sie Teilnehmer(1) oder Seminar(2) anlegen\n&quot; &lt;&lt; endl;
	  		cin &gt;&gt; auswahl;

	  		if (auswahl == 1){
	  			cout &lt;&lt; &quot;Gewaehlte Option: Seminare anzeigen\n&quot; &lt;&lt;endl;
		    	T1.ZeigeSeminar();
		    	T1.Auswahl();
			}

		    if (auswahl == 2){
		    	cout &lt;&lt;&quot;Gewaehlte Option: Teilnehmere anzeigen\n&quot; &lt;&lt;endl;
				T1.ZeigeTeilnehmer();
				T1.Auswahl();
			}

			else{
				cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
			}

		    break;

      case '2':		// Anzahl Elemente
      		system(&quot;cls&quot;);
		    cout &lt;&lt;&quot;Gewaehlte Option: Anzahl der Eintraege in der Liste ausgeben\n&quot; &lt;&lt;endl;
	        cout &lt;&lt; &quot; Die Liste enthaelt &quot; &lt;&lt;  T1.Anzahl() &lt;&lt; &quot; Elemente\n&quot; &lt;&lt; endl;
		    T1.Auswahl();
		    break;

	  case '3':				// Seminar bestimmen
	  		system(&quot;cls&quot;);

	  		cout &lt;&lt; &quot;Bitte wählen sie Teilnehmer(1) oder Seminar(2) bestimmen\n&quot; &lt;&lt; endl;
	  		cin &gt;&gt; auswahl;

	  		if (auswahl == 1){
			    cout &lt;&lt;&quot;Gewaehlte Option: Ein Seminar bestimmen\n&quot; &lt;&lt;endl;
			    T1.SeminarBestimmen();
			    T1.Auswahl();
			}

		    if (auswahl == 2){
			    cout &lt;&lt;&quot;Gewaehlte Option: Ein Teilnehmer bestimmen\n&quot; &lt;&lt;endl;
			    T1.TeilnehmerBestimmen();
			    T1.Auswahl();
			}

			else{
				cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
			}

		    break;

	default:
		  cout &lt;&lt; &quot;Fehler: Anwendungsfehler!\n\nBitte Funktion waehlen!\n\n&quot; &lt;&lt; endl;
	}
}
return 0;
}
</code></pre>
<p>Ich hab die Cases 4-8 gelöscht, da ich denke sie sind unrelevant... wenn nicht bitte melden!</p>
<p>schöne Grüße<br />
Nina</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939605</guid><dc:creator><![CDATA[Nina11]]></dc:creator><pubDate>Fri, 13 Aug 2010 10:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler: Case bypasses initialisation of a local varialbe in funktion main() on Fri, 13 Aug 2010 11:10:49 GMT]]></title><description><![CDATA[<p>Fehlermeldungen lesen und verstehen <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="😉"
    /> . Freie Übersetuzung durch mich:</p>
<p><em>Case übergeht die Initialisierung einer lokalen Variable.</em></p>
<p>Switch-Case springt (wie dir wohl bewusst ist) in einem Programm herum. Du darfst aber nicht an der Initialisierung von Variablen vorbeispringen in Bereiche wo diese Variablen trotzdem gültig sind. Doch genau das machst du bei dem int auswahl. auswahl wird im Case 1 initialisiert, ist aber, aufgrund deiner Klammerung, auch nachher noch gültig. Du benutzt auswahl zwar nicht mehr, aber passenden Code kann der Compiler trotzdem nicht erstellen.</p>
<p>Falls du willst, dass auswahl im gesamten switch-case Konstrukt gültig ist, setz die Initialisierung vor das switch. Wenn du willst, dass auswahl nur lokal in Case 1 existiert, dann mach auswahl auch lokal für den Case 1, indem du den Gültigkeitsbereich einschränkst (geschweifte Klammern markieren Anfang und Ende von Gültigkeitsbereichen).</p>
<p>edit: Ahh, ich sehe du verwendest auswahl auch in anderen Cases (Tut mir leid, dann Programm ist sauschlecht zu lesen, so wie du es hier gepostet hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> . Verwende beim nächsten mal die cpp-Tags.). Wenn ich das jedoch richtig sehe, ist jedes mal eine andere Variable gemeint, die du bloß aus Faulheit mehrmals verwendest. Somit wäre die Variante mit der Einschränkung des Gültigkeitsbereiches die saubere Lösung. Die andere Variante wäre die faule Pfuscherlösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1939611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1939611</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 Aug 2010 11:10:49 GMT</pubDate></item></channel></rss>