<?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[Warum?]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code sei gegeben:</p>
<pre><code>[cpp]
struct Komplex {
  double re, im;
};

struct Student {
  string name;
  int matrnr;
};

struct Student S;

  cout&lt;&lt;&quot;\n\n  Waehlen Sie eine Version zu testen!!!&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;(1) Komplexe Zahlen\n&quot;
      &lt;&lt;&quot;(2) Studenten Daten\n&quot;
      &lt;&lt;&quot;(3) Das Feld\n&quot;&lt;&lt;endl;
  int   wahl;

  cin&gt;&gt;wahl;
     switch(wahl){//&lt;Zwischenablage leer&gt;
        case 1 :
        cout&lt;&lt;&quot;Geben Sie die reele Zahlen von  Z\n&quot;;
        cin&gt;&gt;z.re; cout&lt;&lt;endl;
        cout&lt;&lt; &quot;Geben Sie imaginaere Zahlen von Z\n&quot;;
        cin&gt;&gt;z.im; cout&lt;&lt;endl;
        ausgeben(z);//&lt;Zwischenablage leer&gt;
        break;

        case 2:
        cout&lt;&lt;&quot;Geben Sie die Name:\n&quot; ;
	cin &gt;&gt; S.name;
        cout&lt;&lt;&quot;Geben Sie die Matrikulnummer:\n&quot;;
        cin&gt;&gt;S.matrnr;
        ausgeben(S);
        break;

        case 3:
        cout&lt;&lt;&quot;Geben Sie die Laenge des Felds!! &quot;&lt;&lt;endl;
        cin&gt;&gt;n;
        double* df=new double[n];
        for (int i=0; i&lt; n; i++)
           df[i]=i+1;

        if(n&gt;1) ausgeben(df,n);
         else   ausgeben(df);
        break;
        };
[/cpp]
</code></pre>
<p>Mein Problem ist der zweite Fall. FOlgende Ausgabe erscheint:</p>
<p>Waehlen Sie eine Version zu testen!!!<br />
(1) Komplexe Zahlen<br />
(2) Studenten Daten<br />
(3) Das Feld</p>
<p>2<br />
Geben Sie die Name:<br />
Peter Pan<br />
Geben Sie die Matrikulnummer:</p>
<p>Peter<br />
4199393<br />
--------------------------------------------------------------------------</p>
<p>Wenn ich den Namen eingegeben habe, überspringt er die Eingabe der<br />
Matrikelnr. Warum?</p>
<p>Gruß<br />
Boris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129942/warum</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 09:07:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129942.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Dec 2005 11:15:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum? on Sun, 18 Dec 2005 11:15:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code sei gegeben:</p>
<pre><code>[cpp]
struct Komplex {
  double re, im;
};

struct Student {
  string name;
  int matrnr;
};

struct Student S;

  cout&lt;&lt;&quot;\n\n  Waehlen Sie eine Version zu testen!!!&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;(1) Komplexe Zahlen\n&quot;
      &lt;&lt;&quot;(2) Studenten Daten\n&quot;
      &lt;&lt;&quot;(3) Das Feld\n&quot;&lt;&lt;endl;
  int   wahl;

  cin&gt;&gt;wahl;
     switch(wahl){//&lt;Zwischenablage leer&gt;
        case 1 :
        cout&lt;&lt;&quot;Geben Sie die reele Zahlen von  Z\n&quot;;
        cin&gt;&gt;z.re; cout&lt;&lt;endl;
        cout&lt;&lt; &quot;Geben Sie imaginaere Zahlen von Z\n&quot;;
        cin&gt;&gt;z.im; cout&lt;&lt;endl;
        ausgeben(z);//&lt;Zwischenablage leer&gt;
        break;

        case 2:
        cout&lt;&lt;&quot;Geben Sie die Name:\n&quot; ;
	cin &gt;&gt; S.name;
        cout&lt;&lt;&quot;Geben Sie die Matrikulnummer:\n&quot;;
        cin&gt;&gt;S.matrnr;
        ausgeben(S);
        break;

        case 3:
        cout&lt;&lt;&quot;Geben Sie die Laenge des Felds!! &quot;&lt;&lt;endl;
        cin&gt;&gt;n;
        double* df=new double[n];
        for (int i=0; i&lt; n; i++)
           df[i]=i+1;

        if(n&gt;1) ausgeben(df,n);
         else   ausgeben(df);
        break;
        };
[/cpp]
</code></pre>
<p>Mein Problem ist der zweite Fall. FOlgende Ausgabe erscheint:</p>
<p>Waehlen Sie eine Version zu testen!!!<br />
(1) Komplexe Zahlen<br />
(2) Studenten Daten<br />
(3) Das Feld</p>
<p>2<br />
Geben Sie die Name:<br />
Peter Pan<br />
Geben Sie die Matrikulnummer:</p>
<p>Peter<br />
4199393<br />
--------------------------------------------------------------------------</p>
<p>Wenn ich den Namen eingegeben habe, überspringt er die Eingabe der<br />
Matrikelnr. Warum?</p>
<p>Gruß<br />
Boris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944719</guid><dc:creator><![CDATA[hjdt]]></dc:creator><pubDate>Sun, 18 Dec 2005 11:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Warum? on Sun, 18 Dec 2005 11:23:06 GMT]]></title><description><![CDATA[<p>Der Name darf kein Leerzeichen enthalten.<br />
Wenn du das wilsst dann verwende getline()<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944726</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sun, 18 Dec 2005 11:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to Warum? on Sun, 18 Dec 2005 11:26:12 GMT]]></title><description><![CDATA[<p>Weil du noch was im Eingabestream hast, ein \n von der Eingabe der Wahl, also pack zwischen cin&gt;&gt;wahl und das switch ein getchar(); rein.<br />
Außerdem liest du den Namen besser mit getline(cin, <a href="http://S.name" rel="nofollow">S.name</a>) ein. Wenn du mit cin&gt;&gt;<a href="http://S.name" rel="nofollow">S.name</a> einliest, hört er beim ersten Leerzeichen auf.</p>
<p>EDIT: Ächz, bin ich lahm heut <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/944728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944728</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sun, 18 Dec 2005 11:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Warum? on Sun, 18 Dec 2005 11:58:12 GMT]]></title><description><![CDATA[<p>Ok, danke erstmal!<br />
Aber müßte das Problem denn nicht eigentlich in jedem Case auftreten? Das wundert mich ein bischen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944752</guid><dc:creator><![CDATA[hjdt]]></dc:creator><pubDate>Sun, 18 Dec 2005 11:58:12 GMT</pubDate></item><item><title><![CDATA[Reply to Warum? on Sun, 18 Dec 2005 12:15:17 GMT]]></title><description><![CDATA[<p>Tritt nicht immer auf. Kommt auf die Kombination an.<br />
In deinem Fall extrahierst du erst mal einen String das ist ok. Dann kommt wegen dem Leerzeichen wieder ein String du willst aber ein int -&gt; cin geht auf Fehler. Dann kommt erst mal nichts mehr bis du cin.clear() aufrufst.<br />
Probleme kanns auch noch geben wenn du z.b ein einzelnes Zeichen aus dem Stream holst, und danach einen String. Du gibst also ein Zeichen ein und dann Enter. Zuerst holst du ein Zeichen ( das Enter bleibt im Puffer ) wenn du dann einen String willst bekommst du einen leeren String zurück.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944766</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sun, 18 Dec 2005 12:15:17 GMT</pubDate></item></channel></rss>