<?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[Bei Schleifenausführung Problem]]></title><description><![CDATA[<p>Hallo!<br />
Ich bin zur Zeit damit beschäftigt eine Aufgabe zu bearbeiten. Da ich immer nur Teile fertig stelle, muss ich diese immer überprüfen. Bei dieser Aufgabe soll man private und dienstliche Kontakte erstellen können und zu diesen wiederum Termine. Nun habe ich die Punkte fertig gestellt, dass man neue Kontakte erstellen kann und zu diesen Kontakten Termine. Ich habe dafür ein Feld erstellt, welches die Nummer<br />
des Kontaktes speichert und bei jedem Durchlauf den Wert in dem Feld erhöht. Nun hab ich aber das Problem, dass ich die Kontakte mit Terminen nicht korrekt ausdrucken kann. Wenn ich zunächst nur Kontakte erstelle, funktioniert es wunderbar, wenn ich aber einen Kontakt erstelle und dann zu diesem Termine und anschliessend einen neuen Kontakt erstelle, es dann ausdrucken lassen will, wird der erste Kontakt durch den zweiten ersetzt, die Termine passen von ihrer Reihenfolge. Ich kann mir nicht erklären woher dass kommt. Wäre echt nett, wenn mir jemand helfen könnte, ich wäre auch sehr dankbar. Falls jemand noch irgendwelche Angaben braucht, einfach hier rein schreiben. Danke<br />
Gruß<br />
Patrick<br />
P.S. Ich darf noch keine Zeiger Referenzen oder ähnliches benutzen</p>
<pre><code>case 7:
                         for (i=0; i&lt;=pt;i++)
                         {
                         cout &lt;&lt; &quot;\nPrivater Kontakt &quot; &lt;&lt; i+1 &lt;&lt; &quot;:&quot; &lt;&lt; endl;
                         cout &lt;&lt; &quot;\n&quot; &lt;&lt; i &lt;&lt; endl;
                         cout &lt;&lt; &quot;Name: &quot; &lt;&lt; PriKontakt[i].Name_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Anschrift: &quot; &lt;&lt; PriKontakt[i].Strasse_lesen() &lt;&lt; &quot; &quot; &lt;&lt; PriKontakt[i].Hausnummer_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;           &quot; &lt;&lt; PriKontakt[i].PLZ_lesen() &lt;&lt; &quot; &quot; &lt;&lt; PriKontakt[i].Ort_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Telefonnummer: &quot; &lt;&lt; PriKontakt[i].Telnummer_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Email: &quot; &lt;&lt; PriKontakt[i].Email_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Vorlieben: &quot; &lt;&lt; PriKontakt[i].Vorlieben_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Geb.-Datum: &quot; &lt;&lt; PriKontakt[i].Gebdatum_lesen() &lt;&lt; endl;
                             if (PriKontakt[i].Maennlich_lesen() == true)
                             cout &lt;&lt; &quot;maennlich&quot; &lt;&lt; endl;
                             else 
                             cout &lt;&lt; &quot;weiblich&quot; &lt;&lt; endl;
                             if (termine[i] = 0)
                             cout &lt;&lt; &quot;\nKein Termin eingetragen!!!&quot; &lt;&lt; endl;
                             else
                             {
                             for (j=0;j&lt;=termine[i];j++)
                             {
                                 cout &lt;&lt; &quot;Termin &quot; &lt;&lt; j+1 &lt;&lt; &quot;:&quot; &lt;&lt; endl;
                                 cout &lt;&lt; &quot;Uhrzeit: &quot; &lt;&lt; PNr[i][j].lese_Stunde() &lt;&lt; &quot; : &quot; &lt;&lt; PNr[i][j].lese_Minute();
                                 cout &lt;&lt; &quot;\nDatum: &quot; &lt;&lt; PNr[i][j].lese_Tag() &lt;&lt; &quot; . &quot; &lt;&lt; PNr[i][j].lese_Monat() &lt;&lt; &quot; . &quot; &lt;&lt; PNr[i][j].lese_Jahr() &lt;&lt; &quot;\n&quot;; 
                                 cout &lt;&lt; &quot;Anlass: &quot; &lt;&lt; PNr[i][j].lese_Anlass() &lt;&lt; endl &lt;&lt; endl;

                             }
                             }
                         }
                         break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/133575/bei-schleifenausführung-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 02:22:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133575.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Jan 2006 21:52:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Wed, 18 Jan 2006 21:52:09 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich bin zur Zeit damit beschäftigt eine Aufgabe zu bearbeiten. Da ich immer nur Teile fertig stelle, muss ich diese immer überprüfen. Bei dieser Aufgabe soll man private und dienstliche Kontakte erstellen können und zu diesen wiederum Termine. Nun habe ich die Punkte fertig gestellt, dass man neue Kontakte erstellen kann und zu diesen Kontakten Termine. Ich habe dafür ein Feld erstellt, welches die Nummer<br />
des Kontaktes speichert und bei jedem Durchlauf den Wert in dem Feld erhöht. Nun hab ich aber das Problem, dass ich die Kontakte mit Terminen nicht korrekt ausdrucken kann. Wenn ich zunächst nur Kontakte erstelle, funktioniert es wunderbar, wenn ich aber einen Kontakt erstelle und dann zu diesem Termine und anschliessend einen neuen Kontakt erstelle, es dann ausdrucken lassen will, wird der erste Kontakt durch den zweiten ersetzt, die Termine passen von ihrer Reihenfolge. Ich kann mir nicht erklären woher dass kommt. Wäre echt nett, wenn mir jemand helfen könnte, ich wäre auch sehr dankbar. Falls jemand noch irgendwelche Angaben braucht, einfach hier rein schreiben. Danke<br />
Gruß<br />
Patrick<br />
P.S. Ich darf noch keine Zeiger Referenzen oder ähnliches benutzen</p>
<pre><code>case 7:
                         for (i=0; i&lt;=pt;i++)
                         {
                         cout &lt;&lt; &quot;\nPrivater Kontakt &quot; &lt;&lt; i+1 &lt;&lt; &quot;:&quot; &lt;&lt; endl;
                         cout &lt;&lt; &quot;\n&quot; &lt;&lt; i &lt;&lt; endl;
                         cout &lt;&lt; &quot;Name: &quot; &lt;&lt; PriKontakt[i].Name_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Anschrift: &quot; &lt;&lt; PriKontakt[i].Strasse_lesen() &lt;&lt; &quot; &quot; &lt;&lt; PriKontakt[i].Hausnummer_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;           &quot; &lt;&lt; PriKontakt[i].PLZ_lesen() &lt;&lt; &quot; &quot; &lt;&lt; PriKontakt[i].Ort_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Telefonnummer: &quot; &lt;&lt; PriKontakt[i].Telnummer_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Email: &quot; &lt;&lt; PriKontakt[i].Email_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Vorlieben: &quot; &lt;&lt; PriKontakt[i].Vorlieben_lesen() &lt;&lt; endl;
                         cout &lt;&lt; &quot;Geb.-Datum: &quot; &lt;&lt; PriKontakt[i].Gebdatum_lesen() &lt;&lt; endl;
                             if (PriKontakt[i].Maennlich_lesen() == true)
                             cout &lt;&lt; &quot;maennlich&quot; &lt;&lt; endl;
                             else 
                             cout &lt;&lt; &quot;weiblich&quot; &lt;&lt; endl;
                             if (termine[i] = 0)
                             cout &lt;&lt; &quot;\nKein Termin eingetragen!!!&quot; &lt;&lt; endl;
                             else
                             {
                             for (j=0;j&lt;=termine[i];j++)
                             {
                                 cout &lt;&lt; &quot;Termin &quot; &lt;&lt; j+1 &lt;&lt; &quot;:&quot; &lt;&lt; endl;
                                 cout &lt;&lt; &quot;Uhrzeit: &quot; &lt;&lt; PNr[i][j].lese_Stunde() &lt;&lt; &quot; : &quot; &lt;&lt; PNr[i][j].lese_Minute();
                                 cout &lt;&lt; &quot;\nDatum: &quot; &lt;&lt; PNr[i][j].lese_Tag() &lt;&lt; &quot; . &quot; &lt;&lt; PNr[i][j].lese_Monat() &lt;&lt; &quot; . &quot; &lt;&lt; PNr[i][j].lese_Jahr() &lt;&lt; &quot;\n&quot;; 
                                 cout &lt;&lt; &quot;Anlass: &quot; &lt;&lt; PNr[i][j].lese_Anlass() &lt;&lt; endl &lt;&lt; endl;

                             }
                             }
                         }
                         break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/970151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970151</guid><dc:creator><![CDATA[pat112]]></dc:creator><pubDate>Wed, 18 Jan 2006 21:52:09 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Wed, 18 Jan 2006 22:18:11 GMT]]></title><description><![CDATA[<p>ich glaube nicht, dass Dein Problem in bzw. an der Schleife liegt, die Du uns gepostet hast. Nach Deiner Fehlerbeschreibung ist zu vermuten, dass Du Dich bei der Verwaltung der Kontakte vertust.</p>
<p>Ein Tipp zur Strukturierung des Programms. Es ist wärmstens zu enpfehlen, für den Typ von 'PriKontakt' einen operator&lt;&lt; zu schreiben, oder wenn Dir das noch zu fremd ist eine Ausgabe-Funktion -</p>
<pre><code class="language-cpp">void print( const CPriKontakt&amp; PriKontakt )  // void print( CPriKontakt PriKontakt ) wäre auch möglich
    {
        cout &lt;&lt; &quot;Name: &quot; &lt;&lt; PriKontakt.Name_lesen() &lt;&lt; endl;
        cout &lt;&lt; &quot;Anschrift: &quot; &lt;&lt; PriKontakt.Strasse_lesen() &lt;&lt; &quot; &quot; &lt;&lt; PriKontakt.Hausnummer_lesen() &lt;&lt; endl;
        // usw.
</code></pre>
<p>Das gleiche gilt für die Termine.<br />
Auch solltest Du die Anzahl der Termine als Member des Typs von 'PriKontakt' halten und nicht außerhalb führen.</p>
<p>Ich bin sicher, dass so Dein Code einfacher und lesbarer wird. Wenn Du bei der Verwaltung ähnlich vorgehst, so läßt sich vielleicht auch Dein Problem schnell lösen.</p>
<p>Poste mal die Stelle, an der ein neuer Kontakt eingetragen wird, nachdem (!) bereits ein oder mehrere Termine eingetragen wurden.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970162</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 18 Jan 2006 22:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Wed, 18 Jan 2006 22:56:25 GMT]]></title><description><![CDATA[<p>Also dasganze ist in einer do while Schleife, also wird ja immer wieder dasselbe aufgerufen. Ich poste mal bei der switch Anweisung neuen Kontakt anlegen</p>
<pre><code>case 1:
                  cout &lt;&lt; &quot;\nVorname: &quot;;
                  cin &gt;&gt; Nvorname;
                  cout &lt;&lt; &quot;Nachname: &quot;;
                  cin &gt;&gt; Nnachname;
                  cout &lt;&lt; &quot;Strasse: &quot;;
                  cin &gt;&gt; Nstrasse;
                  cout &lt;&lt; &quot;Hausnummer: &quot;;
                  cin &gt;&gt; Nhausnummer;
                  cout &lt;&lt; &quot;Postleitzahl: &quot;;
                  cin &gt;&gt; Npostleitzahl;
                  cout &lt;&lt; &quot;Ort: &quot;;
                  cin &gt;&gt; Nort;
                  cout &lt;&lt; &quot;Telefonnummer: &quot;;
                  cin &gt;&gt; Ntelefonnummer;
                  cout &lt;&lt; &quot;E-mail Adresse: &quot;;
                  cin &gt;&gt; Nemail;
                  cout &lt;&lt; &quot;Ist der Kontakt 1)Privat oder 2)Dienstlich? &quot;;
                  cin &gt;&gt; Wert;
                  if (Wert == 1)
                  {
                           PriKontakt[p].Name_setzen(Nvorname,Nnachname);
                           PriKontakt[p].Strasse_setzen(Nstrasse);
                           PriKontakt[p].Hausnummer_setzen(Nhausnummer);
                           PriKontakt[p].PLZ_setzen(Npostleitzahl);
                           PriKontakt[p].Ort_setzen(Nort);
                           PriKontakt[p].Telnummer_setzen(Ntelefonnummer);
                           PriKontakt[p].Email_setzen(Nemail);
                           cout &lt;&lt; &quot;Vorlieben des Kontaktes: &quot;;
                           cin &gt;&gt; Nvorlieben;
                           PriKontakt[p].Vorlieben_setzen(Nvorlieben);
                           cout &lt;&lt; &quot;Geburtstag: &quot;;
                           cin &gt;&gt; Ngeburtstag;
                           PriKontakt[p].Gebdatum_setzen(Ngeburtstag);
                           cout &lt;&lt; &quot;Ist der Kontakt 1)Maennlich oder 2)Weiblich? &quot;;
                           cin &gt;&gt; Nmaennlich;
                           if (Nmaennlich == 1)
                           {PriKontakt[p].Maennlich_setzen(true);}
                           else
                           {PriKontakt[p].Maennlich_setzen(false);}
                           pt=p;
                           p++;
                  }
</code></pre>
<p>und neuen Termin anlegen</p>
<pre><code>cout &lt;&lt; &quot;\n1)Privater oder 2)Dienstlicher Kontakt?&quot;;
                    cin &gt;&gt; ArtKontakt;
                    if (ArtKontakt == 1)
                    { 
                                   cout &lt;&lt; &quot;\nZu welchem Kontakt soll ein Termin erstellt werden? &quot;;
                                   cin &gt;&gt; u;
                                   p=u-1;
                                   cout &lt;&lt; &quot;\n\nStunde: &quot;;
                                   cin &gt;&gt; Nstunde;
                                   cout &lt;&lt; &quot;Minute: &quot;;
                                   cin &gt;&gt; Nminute;
                                   cout &lt;&lt; &quot;Tag: &quot;;
                                   cin &gt;&gt; Ntag;
                                   cout &lt;&lt; &quot;Monat: &quot;;
                                   cin &gt;&gt; Nmonat;
                                   cout &lt;&lt; &quot;Jahr: &quot;;
                                   cin &gt;&gt; Njahr;
                                   cout &lt;&lt; &quot;Anlass: &quot;;
                                   cin &gt;&gt; Nanlass;
                                   PNr[p][k].setze_Uhrzeit(Nstunde, Nminute);
                                   PNr[p][k].setze_Datum(Ntag, Nmonat, Njahr);
                                   PNr[p][k].setze_Anlass(Nanlass);
                                   termine[p]=++termine[p];
                                   cout &lt;&lt; &quot;\n Termin Zaehler &quot; &lt;&lt; p &lt;&lt; &quot; ist auf &quot; &lt;&lt; termine[p] &lt;&lt; endl;
                                   k = termine[p];
                                   cout &lt;&lt; &quot;\n&quot; &lt;&lt; k &lt;&lt; endl;
                                   }
</code></pre>
<p>Vielen Dank für deine Mühe<br />
Gruß<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970171</guid><dc:creator><![CDATA[pat112]]></dc:creator><pubDate>Wed, 18 Jan 2006 22:56:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Thu, 19 Jan 2006 08:02:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">termine[p]=++termine[p];
</code></pre>
<p>erzeugt undefiniertes Verhalten (du hast zwei Nebeneffekte auf die selbe Variable und kannst nicht sicher sein, in welcher Reihenfolge die ausgeführt werden) - was soll denn diese Anweisung bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970257</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Jan 2006 08:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Thu, 19 Jan 2006 08:21:21 GMT]]></title><description><![CDATA[<p>Hallo Patrick,</p>
<p>Ich vermute, dass es an der Variablen 'p' liegt. Du benutzt sie zum einen zum Erfassen des aktuell einzugebenen Kontakts und veränderst sie, sobald ein Termin eingegeben wird. Zudem ist sie wahrscheinlich global oder zumindest in einem sehr großen Scope.</p>
<p>Nochmal die wärmste Empfehlung: Strukturiere Dein Programm! Da kann man nicht früh genug mit anfangen. Dann passieren solche Sachen erst gar nicht.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970268</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 19 Jan 2006 08:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Thu, 19 Jan 2006 14:56:06 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Also die Anweisung</p>
<blockquote>
<p>termine[p]=++termine[p];</p>
</blockquote>
<p>soll bewirken, dass nachdem ein Termin eingegeben wurde, zu dem Kontakt p, derWert, der in termine[p] gespeichert ist um eins erhöht wird, damit bei jedem Kontakt klar ist, wieviele Termine vorhanden ist. Ich hatte es davor schon anders ohne Feld,aber<br />
dann hat er mir bei jedem Kontakt soviele Termine ausgegeben, wie bei dem Kontakt mit den meisten Terminen, gibt es dafür vielleicht eine elegantere Lösung?<br />
Vielen Dank für die bisherigen Antworten und für die Mühe im voraus...<br />
MfG<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970634</guid><dc:creator><![CDATA[pat112]]></dc:creator><pubDate>Thu, 19 Jan 2006 14:56:06 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Thu, 19 Jan 2006 15:00:53 GMT]]></title><description><![CDATA[<p>pat112 schrieb:</p>
<blockquote>
<p>gibt es dafür vielleicht eine elegantere Lösung?</p>
</blockquote>
<p>ja <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>
<pre><code class="language-cpp">++termine[p];
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">termine[p]+=1;
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">termine[p]=termine[p] + 1;
</code></pre>
<p>Ist alles eleganter<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/970637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970637</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Thu, 19 Jan 2006 15:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Thu, 19 Jan 2006 15:17:04 GMT]]></title><description><![CDATA[<p>Du hast</p>
<pre><code class="language-cpp">termine[p]++;
</code></pre>
<p>vergessen. <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/970652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/970652</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 19 Jan 2006 15:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bei Schleifenausführung Problem on Fri, 20 Jan 2006 07:29:33 GMT]]></title><description><![CDATA[<p>pat112 schrieb:</p>
<blockquote>
<p>Hallo!<br />
Also die Anweisung</p>
<blockquote>
<p>termine[p]=++termine[p];</p>
</blockquote>
<p>soll bewirken, dass nachdem ein Termin eingegeben wurde, zu dem Kontakt p, derWert, der in termine[p] gespeichert ist um eins erhöht wird, damit bei jedem Kontakt klar ist, wieviele Termine vorhanden ist.</p>
</blockquote>
<p>Dazu reicht das &quot;++termine[p];&quot; ohne die Zuweisung schon völlig aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971032</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 20 Jan 2006 07:29:33 GMT</pubDate></item></channel></rss>