<?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[Struct-Datentyp]]></title><description><![CDATA[<p>Hallo Leute,<br />
kann jemand mir bitte bei dieser Aufgabe helfen ? Danke im Voraus.<br />
Struct-Datentyp ist für diese Dateien:<br />
• KFZ-Modell<br />
• Hersteller<br />
• Baujahr<br />
• Lauﬂeistung<br />
• Sitzanzahl</p>
<p>Aufgabe :<br />
Schreiben Sie anschließend ein C++ Programm, das folgende Aufgaben erledigt:<br />
• Anlegen einer Variable des von Ihnen erstellten Struct-Datentyps (siehe oben).<br />
• Einlesen der Elemente der Struct-Variable.<br />
• Ausgabe der Elemente der Struct-Variable.<br />
Hinweise:<br />
• Verwenden Sie zum Einlesen der Daten über die Tastatur ’cin’<br />
• Verwenden Sie zur Ausgabe der Daten ’cout’</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316906/struct-datentyp</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 14:41:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316906.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 May 2013 17:25:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 17:25:12 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
kann jemand mir bitte bei dieser Aufgabe helfen ? Danke im Voraus.<br />
Struct-Datentyp ist für diese Dateien:<br />
• KFZ-Modell<br />
• Hersteller<br />
• Baujahr<br />
• Lauﬂeistung<br />
• Sitzanzahl</p>
<p>Aufgabe :<br />
Schreiben Sie anschließend ein C++ Programm, das folgende Aufgaben erledigt:<br />
• Anlegen einer Variable des von Ihnen erstellten Struct-Datentyps (siehe oben).<br />
• Einlesen der Elemente der Struct-Variable.<br />
• Ausgabe der Elemente der Struct-Variable.<br />
Hinweise:<br />
• Verwenden Sie zum Einlesen der Daten über die Tastatur ’cin’<br />
• Verwenden Sie zur Ausgabe der Daten ’cout’</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324785</guid><dc:creator><![CDATA[daniel1]]></dc:creator><pubDate>Mon, 20 May 2013 17:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 17:28:58 GMT]]></title><description><![CDATA[<p>Hi,<br />
klingt nicht schwer. Zeig mal deinen bisherigen Quellcode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324788</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 20 May 2013 17:28:58 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 18:16:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main()
{
}
</code></pre>
<p>Den Rest schaffst du ja sicher allein ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324796</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 20 May 2013 18:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 18:37:58 GMT]]></title><description><![CDATA[<p>Warte, überforder den nicht:</p>
<pre><code>#include &lt;iostream&gt;

int main()
{

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2324805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324805</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 20 May 2013 18:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 19:52:48 GMT]]></title><description><![CDATA[<p>daniel1 schrieb:</p>
<blockquote>
<p>Hallo Leute,<br />
kann jemand mir bitte bei dieser Aufgabe helfen ? Danke im Voraus.<br />
Struct-Datentyp ist für diese Dateien:<br />
• KFZ-Modell<br />
• Hersteller<br />
• Baujahr<br />
• Lauﬂeistung<br />
• Sitzanzahl</p>
</blockquote>
<p>Du meinst Daten.</p>
<p>Ja, um natürlich eine Klasse zu definieren die diese Membervariablen hat, müssen wir erstmal ein Paar Dinge klären.</p>
<p>Welchen Typ hat jede Eigenschaft? Die Meisten sind einfache ganzzahlige Basisdatentypen, wie <code>int</code> . Aber auch bei den ganzzahligen Basisdatentypen muss man zwischen Größe (Wertebereich) und Vorzeichenbehaftung (kann der Wert negativ sein?) unterscheiden.</p>
<ul>
<li><strong>KFZ-Modell/Hersteller</strong>: Hier bietet sich als einfachste Lösung entweder ein String oder eine Enumeration an. Eine Enumeration ist mehr oder weniger eben eine Aufzählung (engl. <code>enumeration</code> ), die mit dem Schlüsselwort <code>enum</code> eingeführt wird:</li>
</ul>
<pre><code>enum class Model
{
    eg74,
    dieser_eine_dessen_name_ich_immer_vergesse,
    // ... (weitere Modelle auflisten)
};
</code></pre>
<p>Strings kennst du bestimmt schon - dafür gibt es ja in der Standardbibliothek die Klasse <code>std::string</code> , die du dann einfach als Membervariable benutzen kannst.<br />
Du kannst auch eine eigene Klasse für das Modell schreiben.</p>
<ul>
<li><strong>Baujahr:</strong> Das wird ein einfaches <code>unsigned</code> . <code>unsigned</code> ist der bekannteste vorzeichenlose Basisdatentyp, der fast immer mindestens ganzzahlige Werte bis zu <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mn>2</mn><mrow><mn>3</mn><mn>2</mn></mrow></msup><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">2^{32}-1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.8141079999999999em;"></span><span class="strut bottom" style="height:0.897438em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathrm">2</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">3</span><span class="mord mathrm">2</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">−</span><span class="mord mathrm">1</span></span></span></span> (ca. Vier Milliarden) stauen kann, was für viele Anwendungsfälle mehr als ausreichend ist. Eigentlich gibt es auch keinen direkten Grund, etwas kleineres zu nehmen, selbst wenn die Werte nicht besonders groß werden können.</li>
<li><strong>Laufleistung:</strong> Die einfachste Lösung wäre (wieder mit <code>unsigned</code> ) eine Jahreszahl festzulegen. Aber besser: Kilometerstand. Das ist gängiger. Und weniger Arbeit, da muss man sich nichts weiteres mehr überlegen.</li>
<li><strong>Sitzanzahl:</strong> Einfach: Das wird wieder ein <code>unsigned</code> .</li>
</ul>
<p>Zugriff auf die Member? Hier einfach direkt ohne große Umschweife wie in C, weil es so einfach ist und du erstmal nur die Grundlagen willst.<br />
Später kannst du Sachen kapseln, unveränderbar machen (Baujahr), dementsprechend Konstruktoren schreiben, die Stream-Operatoren überladen. Ach, so viel. :schnief:</p>
<p>Erster Code:</p>
<pre><code>struct Car
{
    enum class Model
    {
        unknown,
        ak_47,
        flop
    } model;

    enum class Manufacturer
    {
        opel, // Auf opel greifst du von Außerhalb der Klasse so zu: Car::Manufacturer::opel
        iomega,
        sony
    } manufacturer;

    unsigned buildYear; // Baujahr
    unsigned mileage; // Laufleistung
    unsigned seatCount;
};
</code></pre>
<blockquote>
<p>Aufgabe :<br />
Schreiben Sie anschließend ein C++ Programm, das folgende Aufgaben erledigt:<br />
• Anlegen einer Variable des von Ihnen erstellten Struct-Datentyps (siehe oben).<br />
• Einlesen der Elemente der Struct-Variable.<br />
• Ausgabe der Elemente der Struct-Variable.<br />
Hinweise:<br />
• Verwenden Sie zum Einlesen der Daten über die Tastatur ’cin’<br />
• Verwenden Sie zur Ausgabe der Daten ’cout’</p>
</blockquote>
<p>Das schaffste auch so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324822</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 19:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 19:52:49 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Aber auch bei den ganzzahligen Basisdatentypen muss man zwischen Größe (Wertebereich) [...] unterscheiden.</p>
</blockquote>
<p>Mach ich nie. Macht ihr das? Ich nehme immer int oder unsigned, außer ich brauche wirklich unbedingt etwas größeres.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324824</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 20 May 2013 19:52:49 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Mon, 20 May 2013 19:54:47 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Aber auch bei den ganzzahligen Basisdatentypen muss man zwischen Größe (Wertebereich) [...] unterscheiden.</p>
</blockquote>
<p>Mach ich nie. Macht ihr das? Ich nehme immer int oder unsigned, außer ich brauche wirklich unbedingt etwas größeres.</p>
</blockquote>
<p>Ne, ich auch nicht. Nicht oft, jedenfalls, nur wo es Sinn macht. Siehe auch die Ergänzung bei <code>unsigned</code> .<br />
Es gibt Fälle, wo man aber eben auch Werte &gt; 2^32 speichern muss. Da muss man berücksichtigen, dass <code>unsigned</code> nicht unendlich große Werte speichern kann.</p>
<p>Jetzt aber nicht abschweifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324825</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 20 May 2013 19:54:47 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Tue, 21 May 2013 09:17:01 GMT]]></title><description><![CDATA[<p>Noch ein Tipp:</p>
<p>Du kennst bestimmt die Shift-Operatoren &gt;&gt; und &lt;&lt;, die für die Stream-Klassen <code>ostream</code> und <code>istream</code> überladen wurden.</p>
<p>Um mit <code>cin</code> eine Variable einlesen zu können, nutzt du einfach folgenden Ausdruck:</p>
<pre><code>unsigned i;
std::cin &gt;&gt; i; // Kennst du. Hoffentlich.
</code></pre>
<p>Um zu Prüfen, ob das Einlesen erfolgreich war, behandelst du <code>std::cin</code> einfach wie ein <code>bool</code> (so kannst du <code>std::cin</code> aber nicht immer behandeln):</p>
<pre><code>if( std::cin &gt;&gt; i )
 // ... Einlesen erfolgreich, mit i arbeiten
else
   std::cerr &lt;&lt; &quot;Eingabe fehlgeschlagen!&quot;; // cerr nutzt man zum Ausgeben von Fehlermeldungen.
</code></pre>
<p>Was vielleicht ein wenig zu fortgeschritten ist, allerdings die allgemeine Variante wäre, ist den Operator zum Extrahieren, &gt;&gt;, auch für <code>istream</code> und Car zu überladen. Das macht für dein Beispiel allerdings keinen Sinn, weil du sicher Abfragen in der Konsole schreiben willst:</p>
<blockquote>
<p>Modell: ak_47<br />
Hersteller: ...</p>
</blockquote>
<p>Dafür musst du tatsächlich einfach ein Car-Objekt instantiieren und seine Membervariablen einlesen:</p>
<pre><code>Car car;

std::cout &lt;&lt; &quot;Sitzanzahl: &quot;;
std::cin &gt;&gt; car.seatCount;

// Bzw., wenn man noch eine Abfrage einbauen will:
if( !(std::cin &gt;&gt; car.seatCount) ) // Wenn das Einlesen fehlschlägt:
{
    std::cerr &lt;&lt; &quot;Falsche Eingabe!\n&quot;;
    return -1; // Wenn du in der main() bist. Dann würdest du hier einen Fehlerwert zurückgeben ([c]-1[/c] ist Konvention).
}
</code></pre>
<p>Und weil ich dich nicht mag, hau ich dir jetzt das vor die Nase.</p>
<pre><code>Car car;
    if( (std::cout &lt;&lt; &quot;Sitzanzahl: &quot;, std::cin &gt;&gt; car.seatCount)
     &amp;&amp; (std::cout &lt;&lt; &quot;Kilometer: &quot;, std::cin &gt;&gt; car.mileage)
     &amp;&amp; (std::cout &lt;&lt; &quot;Baujahr: &quot;, std::cin &gt;&gt; car.buildYear) )
        std::cout &lt;&lt; &quot;Fein!\n&quot;;
    else
    {
        std::cerr &lt;&lt; &quot;Versuch's noch mal!&quot;;
        return -1;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2324895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324895</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 21 May 2013 09:17:01 GMT</pubDate></item><item><title><![CDATA[Reply to Struct-Datentyp on Tue, 21 May 2013 09:18:12 GMT]]></title><description><![CDATA[<p>So, jetzt ist mein Karma wieder ausgeglichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324897</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 21 May 2013 09:18:12 GMT</pubDate></item></channel></rss>