<?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[[ANFÄNGER] Enumeratoren in Strukturen]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p><strong>Folgendes Beispiel:</strong></p>
<pre><code class="language-cpp">enum land { Deutschland, Oesterreich, Schweiz };

struct anschrift
{
    land Land;
    std::string Adresse;
    int HausNummer;
};

int main()
{
    anschrift MeineAnschrift;
    std::cout &lt;&lt; &quot;Bitte geben Sie zuerst ihr Land ein:\n&quot;;
    std::cin &gt;&gt; MeineAnschrift.Land;
}
</code></pre>
<p>Mein Problem ist, dass der Compiler eine Fehlermeldung ausspuckt.</p>
<p>Bitte beachten, dass <strong>ich noch C++ Anfänger bin</strong> und mich im Moment durch ein C++ Buch arbeite.</p>
<p>Liebe Grüße,<br />
Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296840/anfänger-enumeratoren-in-strukturen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 18:42:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296840.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Dec 2011 13:05:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:10:57 GMT]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p><strong>Folgendes Beispiel:</strong></p>
<pre><code class="language-cpp">enum land { Deutschland, Oesterreich, Schweiz };

struct anschrift
{
    land Land;
    std::string Adresse;
    int HausNummer;
};

int main()
{
    anschrift MeineAnschrift;
    std::cout &lt;&lt; &quot;Bitte geben Sie zuerst ihr Land ein:\n&quot;;
    std::cin &gt;&gt; MeineAnschrift.Land;
}
</code></pre>
<p>Mein Problem ist, dass der Compiler eine Fehlermeldung ausspuckt.</p>
<p>Bitte beachten, dass <strong>ich noch C++ Anfänger bin</strong> und mich im Moment durch ein C++ Buch arbeite.</p>
<p>Liebe Grüße,<br />
Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156498</guid><dc:creator><![CDATA[Awesome96]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:11:20 GMT]]></title><description><![CDATA[<p>Ein Struct wird mit &quot;};&quot; geschlossen. Auf solche Fehler weißt der Compiler aber meist hin, wenn ich deinen Code kompilieren will bekomme ich unter anderem diesen Hinweis:</p>
<blockquote>
<p>prog.cpp:12: note: (perhaps a semicolon is missing after the definition of ‘anschrift’)</p>
</blockquote>
<p>Also einfach mal lesen, was der Compiler ausspuckt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2156500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156500</guid><dc:creator><![CDATA[mortified_penguin]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:10:47 GMT]]></title><description><![CDATA[<p>War nur ein Leichtsinnsfehler, aber der eigentliche Fehler wird ja bei der Zeile angezeigt, wo die Eingabe in &quot;MeineAnschrift.Land&quot; gespeichert wird.</p>
<p>Lg,<br />
Alex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156502</guid><dc:creator><![CDATA[Awesome96]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:10:47 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:22:12 GMT]]></title><description><![CDATA[<p>Awesome96 schrieb:</p>
<blockquote>
<p>Mein Problem ist, dass der Compiler eine Fehlermeldung ausspuckt.</p>
</blockquote>
<p>Dann poste die doch. z.B:</p>
<blockquote>
<pre><code>error C2678: binary '&gt;&gt;' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)
</code></pre>
</blockquote>
<p>Dein Problem ist also, dass es für operator &gt;&gt; keine Überladung gibt, sodass du von einem std::istream in ein &quot;land&quot; lesen kannst. Diese Funktion musst du selbst schreiben:</p>
<pre><code class="language-cpp">enum land { Unbekannt, Deutschland, Oesterreich, Schweiz };

std::istream &amp;operator &gt;&gt; (std::istream &amp;stream, land &amp;Land)
{
  std::string s; // Du könntest natürlich auch in einen Integer lesen, und 1 zu DE machen etc. 
  // Man könnte auch überlegen, das enum Zeugs hier weg zu lassen und gleich einen std::string zu nehmen.
  stream &gt;&gt; s;
  if (s == &quot;Deutschland&quot;)
    Land = Deutschland;
  else if (s == &quot;Oesterreich&quot;)
    Land = Oesterreich;
  else if (s == &quot;Schweiz&quot;)
    Land = Schweiz;
  else
    Land = Unbekannt;
  return stream;
}

struct anschrift
{
  land Land;
  std::string Adresse;
  int HausNummer;
};

int main()
{
  anschrift MeineAnschrift;
  std::cout &lt;&lt; &quot;Bitte geben Sie zuerst ihr Land ein:\n&quot;;
  std::cin &gt;&gt; MeineAnschrift.Land;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156507</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:25:05 GMT]]></title><description><![CDATA[<p>Okay Danke, das hilft mir schonmal.<br />
Das Problem ist halt, ich muss eine Aufgabe erledigen, die in einem C++ Buch erteilt wird.</p>
<p><strong>Zitat:</strong></p>
<pre><code>Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer
 Bestellung auffordert. Der Anwender muss hierbei der Reihe nach die bestellte
 Ware, die Lieferanschrift, die Kreditkartennummer und das Gültigkeitsdatum der
 Kreditkarte eingeben. Die Daten sollen hierbei in geeigneten Variablen unter 
Zuhilfenahme benutzerdefinierter Strukturen und Enumerationen gespeichert werden.
 Lieferanschrift und Kreditkartendaten sollen jeweils in einer eigenen Struktur
 gespeichert werden. Die Bestellung wird ebenfalls in einer eigenen Struktur 
gespeichert, die sich der anderen beiden Strukturen bedient. Außerdem soll das 
[u]Land, das in der Lieferanschrift gespeichert wird, vom Typ einer Enumeration 
sein.[/u]
</code></pre>
<p>Wie soll ich die Anweisung in der letzten Zeile in Code umsetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156510</guid><dc:creator><![CDATA[Awesome96]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:27:45 GMT]]></title><description><![CDATA[<p>Awesome96 schrieb:</p>
<blockquote>
<p>Wie soll ich die Anweisung in der letzten Zeile in Code umsetzen?</p>
</blockquote>
<p>Siehe oben. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2156513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156513</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:31:11 GMT]]></title><description><![CDATA[<p>Ich glaub nicht das das die geforderte Problemlösung ist, denn das was du da oben gepostet hast verstehe ich zwar ungefähr aber ich hab es bis jetzt weder gelernt noch könnte ich es selbst umsetzen, ohne deine Vorlage.<br />
Es muss schon für einen Anfänger sein.</p>
<p>Trotzdem Danke für deine Bemühungen. <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>Edit: Damit meine ich übrigends nicht, du sollst es mir erklären, sondern das ich einfach eine Problemlösung brauche die ich mit meinen jetzigen (mageren) Kenntnissen als Anfänger verstehe, denn eine solche ist ja auch im Buch gefordert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156516</guid><dc:creator><![CDATA[Awesome96]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:31:11 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:36:51 GMT]]></title><description><![CDATA[<p>Es gibt im Großen und Ganzen keine andere sinnvolle Lösung. Du kannst natürlich statt operator &gt;&gt; () einfach eine Funktion readLand() oder so machen, aber letztlich bleibt es immer das Gleiche. Ein stumpfer Cast nach int würde auch funktionieren, aber das ist natürlich wirklich unschön. Nur mal so aus Interesse: Aus welchem Buch ist die Aufgabe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156521</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:38:51 GMT]]></title><description><![CDATA[<p>Awesome96 schrieb:</p>
<blockquote>
<p>Edit: Damit meine ich übrigends nicht, du sollst es mir erklären, sondern das ich einfach eine Problemlösung brauche die ich mit meinen jetzigen (mageren) Kenntnissen als Anfänger verstehe, denn eine solche ist ja auch im Buch gefordert.</p>
</blockquote>
<p>Dann schreib es eben weniger elegant. Operator&gt;&gt; ist auch nur ein Funktionsname, den kannst du auch ändern:</p>
<pre><code class="language-cpp">void lies_land_von_cin (land &amp;Land)
{
  std::string s; 
  std::cin &gt;&gt; s;
  if (s == &quot;Deutschland&quot;)
    Land = Deutschland;
  else if (s == &quot;Oesterreich&quot;)
    Land = Oesterreich;
  else if (s == &quot;Schweiz&quot;)
    Land = Schweiz;
  else
    Land = Unbekannt;
}

int main()
{
  anschrift MeineAnschrift;
  std::cout &lt;&lt; &quot;Bitte geben Sie zuerst ihr Land ein:\n&quot;;
  lies_land_von_cin(MeineAnschrift.Land);
}
</code></pre>
<p>Oder falls du keine Funktionen kennst, dann eben so:</p>
<pre><code class="language-cpp">int main()
{
  anschrift MeineAnschrift;
  std::cout &lt;&lt; &quot;Bitte geben Sie zuerst ihr Land ein:\n&quot;;
  std::string s; 
  std::cin &gt;&gt; s;
  if (s == &quot;Deutschland&quot;)
    MeineAnschrift.Land = Deutschland;
  else if (s == &quot;Oesterreich&quot;)
    MeineAnschrift.Land = Oesterreich;
  else if (s == &quot;Schweiz&quot;)
    MeineAnschrift.Land = Schweiz;
  else
    MeineAnschrift.Land = Unbekannt;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156523</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to [ANFÄNGER] Enumeratoren in Strukturen on Tue, 13 Dec 2011 13:54:42 GMT]]></title><description><![CDATA[<p>Okay, Danke. Verstehe das ganze jetzt!</p>
<p>@Oben: Ja, Funktionen kenn ich schon. Aber Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156536</guid><dc:creator><![CDATA[Awesome96]]></dc:creator><pubDate>Tue, 13 Dec 2011 13:54:42 GMT</pubDate></item></channel></rss>