<?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[Testprogramm bricht ab...??]]></title><description><![CDATA[<p>hallo alle zusammen,<br />
ich bin noch ein c++ anfänger und hab deshalb angefangen mal an einem kleinen übungsprogramm zu basteln.<br />
jetzt hab ich es nach langen tüfteln <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="🙂"
    /> geschafft das der compiler keine fehlermeldung mehr ausspuckt... aber da nach der ersten eingabe bricht das programm ab mit der windows fehler meldung &quot;das programm hat einen problem festgestellt muss beendet werden... bericht senden&quot;... blablabla kennen wir ja alle.</p>
<p>hab das ganze auf einem dell notebook mit window xp laufen</p>
<p>hier erstmal der code</p>
<pre><code>// consolengame.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;

class Player {
      public:

      enum Geschlecht { MANN, FRAU};

      private:
      char player_name[23];
      unsigned int player_alter;
      int player_lvl;
      int player_leben;
      int player_schaden;
      bool p_geschlecht; // 0 m , 1 w
      void test_geschlecht(void);

      public:
      // methoden von player 
      void sehen(const char* objekt);
      void laufen(const int* richtung);
      void schlagen(const char* objekt);
      void sprechen(const char* person);
      void nehmen(const char* objekt);
      // einen player erzeugen
      void erzeuge( char* p_n = &quot;unbekannt&quot;, unsigned int* p_a = 0, int p_lvl = 0, bool g = FRAU);
      void print(void);
};

// main 
int main(void) {
    Player spieler_einz, spieler_zwei;
    spieler_einz.erzeuge();
    spieler_einz.sehen(&quot;hund&quot;);
}

// funktionen

void Player::sehen( const char* objekt) {
     cout &lt;&lt; player_name &lt;&lt; &quot; sieht &quot; &lt;&lt; objekt &lt;&lt; &quot;\n&quot;;
}

void Player::erzeuge( char* p_n, unsigned int* p_a, int p_lvl, bool g) {

     int check = 0;
     while( check==0) {

                   cout &lt;&lt; &quot;name : &quot; ;
                   cin.getline( p_n, sizeof( p_n)); // evt. liegt fehler hier
                   if( p_n) {
                        ++check;
                   }
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   } 
     }                  
     while(check==1) {
                   cout &lt;&lt; &quot;alter :&quot; ;
                   if(cin &gt;&gt; *p_a) {
                          ++check;
                   }    
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   }
     }

     strncpy( player_name, p_n, sizeof(player_name)-1);
     player_name[sizeof(player_name)] = '\0';
     player_alter = *p_a;
     player_lvl = p_lvl;
     p_geschlecht= g;
}
</code></pre>
<p>vielleicht geht das ja bei euch reibungslos oder jemand weiss woran es liegt<br />
danke schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230631/testprogramm-bricht-ab</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 00:28:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230631.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Dec 2008 00:22:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 30 Dec 2008 00:22:10 GMT]]></title><description><![CDATA[<p>hallo alle zusammen,<br />
ich bin noch ein c++ anfänger und hab deshalb angefangen mal an einem kleinen übungsprogramm zu basteln.<br />
jetzt hab ich es nach langen tüfteln <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="🙂"
    /> geschafft das der compiler keine fehlermeldung mehr ausspuckt... aber da nach der ersten eingabe bricht das programm ab mit der windows fehler meldung &quot;das programm hat einen problem festgestellt muss beendet werden... bericht senden&quot;... blablabla kennen wir ja alle.</p>
<p>hab das ganze auf einem dell notebook mit window xp laufen</p>
<p>hier erstmal der code</p>
<pre><code>// consolengame.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;

class Player {
      public:

      enum Geschlecht { MANN, FRAU};

      private:
      char player_name[23];
      unsigned int player_alter;
      int player_lvl;
      int player_leben;
      int player_schaden;
      bool p_geschlecht; // 0 m , 1 w
      void test_geschlecht(void);

      public:
      // methoden von player 
      void sehen(const char* objekt);
      void laufen(const int* richtung);
      void schlagen(const char* objekt);
      void sprechen(const char* person);
      void nehmen(const char* objekt);
      // einen player erzeugen
      void erzeuge( char* p_n = &quot;unbekannt&quot;, unsigned int* p_a = 0, int p_lvl = 0, bool g = FRAU);
      void print(void);
};

// main 
int main(void) {
    Player spieler_einz, spieler_zwei;
    spieler_einz.erzeuge();
    spieler_einz.sehen(&quot;hund&quot;);
}

// funktionen

void Player::sehen( const char* objekt) {
     cout &lt;&lt; player_name &lt;&lt; &quot; sieht &quot; &lt;&lt; objekt &lt;&lt; &quot;\n&quot;;
}

void Player::erzeuge( char* p_n, unsigned int* p_a, int p_lvl, bool g) {

     int check = 0;
     while( check==0) {

                   cout &lt;&lt; &quot;name : &quot; ;
                   cin.getline( p_n, sizeof( p_n)); // evt. liegt fehler hier
                   if( p_n) {
                        ++check;
                   }
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   } 
     }                  
     while(check==1) {
                   cout &lt;&lt; &quot;alter :&quot; ;
                   if(cin &gt;&gt; *p_a) {
                          ++check;
                   }    
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   }
     }

     strncpy( player_name, p_n, sizeof(player_name)-1);
     player_name[sizeof(player_name)] = '\0';
     player_alter = *p_a;
     player_lvl = p_lvl;
     p_geschlecht= g;
}
</code></pre>
<p>vielleicht geht das ja bei euch reibungslos oder jemand weiss woran es liegt<br />
danke schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637115</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Tue, 30 Dec 2008 00:22:10 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 30 Dec 2008 06:09:42 GMT]]></title><description><![CDATA[<p>Du weist einfach Pointer Text zu ohne speicher reserviert zu haben. Wenn du mit C++ arbeitest dann nimm besser gleich std::string</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637147</guid><dc:creator><![CDATA[downdowndown]]></dc:creator><pubDate>Tue, 30 Dec 2008 06:09:42 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 30 Dec 2008 08:24:25 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-1819.html" rel="nofollow">rüdiger</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-8.html" rel="nofollow">Rund um die Programmierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637162</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 30 Dec 2008 08:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 30 Dec 2008 10:25:05 GMT]]></title><description><![CDATA[<p>C++ Forumbot schrieb:</p>
<blockquote>
<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-1819.html" rel="nofollow">rüdiger</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-8.html" rel="nofollow">Rund um die Programmierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
</blockquote>
<p>sachma forumbot, kannst du auch einmal in deinem leben was zum thema sagen?!??!!<br />
immer nur &quot;mh, wird verschoben blablabla&quot;<br />
du bist voll langweilig, aber ok, jetzt weiss ich auch wie man über 10000 posts hinbekommt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>b2t:<br />
warum arbeitest du überall mit pointern?</p>
<pre><code class="language-cpp">// consolengame.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;

class Player {
      public:

      enum Geschlecht { MANN, FRAU};

      private:
      char player_name[23];
      unsigned int player_alter;
      int player_lvl;
      int player_leben;
      int player_schaden;
      bool p_geschlecht; // 0 m , 1 w
      void test_geschlecht(void);

      public:
      // methoden von player
      void sehen(const char* objekt);
      void laufen(const int* richtung);
      void schlagen(const char* objekt);
      void sprechen(const char* person);
      void nehmen(const char* objekt);
      // einen player erzeugen
      void erzeuge( char* p_n = &quot;unbekannt&quot;, unsigned int* p_a = 0, int p_lvl = 0, bool g = FRAU);
      void print(void);
};

// main
int main(void) {
    Player spieler_einz, spieler_zwei;
    spieler_einz.erzeuge();
    spieler_einz.sehen(&quot;hund&quot;);
}

// funktionen

void Player::sehen( const char* objekt) {
     cout &lt;&lt; player_name &lt;&lt; &quot; sieht &quot; &lt;&lt; objekt &lt;&lt; &quot;\n&quot;;
}

void Player::erzeuge( char* p_n, unsigned int* p_a, int p_lvl, bool g)
/* der char pointer ist ok, aber wieso gibst du einen default wert an wenn du ihn direkt wieder neu abfragst und überschreibst, abgesehen davond ass du in speicherzellen schreibst die nicht allocated sind (also nicht per new angelegt wurden)
warum dann der zeiger auf uint? wegen schelligkeit? google mal nach premature optimizing, die build in datentypen sind schnell genug für alles was man in deinem stadium macht
*/
{

     int check = 0;
     while( check==0) {

                   cout &lt;&lt; &quot;name : &quot; ;
                   cin.getline( p_n, sizeof( p_n)); // evt. liegt fehler hier
                   if( p_n) {
                        ++check;
                   }
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   }
     }                  
     while(check==1) {
                   cout &lt;&lt; &quot;alter :&quot; ;
                   if(cin &gt;&gt; *p_a) {
                          ++check;
                   }    
                   else {
                        cout &lt;&lt; &quot;falsch\n&quot;;
                   }
     }

     strncpy( player_name, p_n, sizeof(player_name)-1);
     player_name[sizeof(player_name)] = '\0';
/*
hier liegt auch ein grosser fehler, sizeof(player_name) gibt 23 zurück, aber der index geht nur von 0 -&gt; n-1, also von 0 -&gt; 22
*/
     player_alter = *p_a;
     player_lvl = p_lvl;
     p_geschlecht= g;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1637190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637190</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 30 Dec 2008 10:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 30 Dec 2008 13:20:38 GMT]]></title><description><![CDATA[<p>danke für die schnelle antwort ... muss mir das alles mal ganz in ruhe angucken ... schaffe ich aber leider erst heute abend<br />
also bis später leute <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1637249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637249</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Tue, 30 Dec 2008 13:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 20:05:07 GMT]]></title><description><![CDATA[<p>wenn es interessiert:</p>
<pre><code class="language-cpp">// consolengame 2 (class.cpp)
#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;

// klassen 

class Figur 
{
      private:
             //initialisierung der klassen variablen
             char name[30];
             unsigned int alter;
             unsigned int level;
             int exp;
             int klasse;
             unsigned int leben;
             unsigned int staerke;
             unsigned int mana;
             char klass_name[10];

      public:
             // kassenmethoden
             void daten_eingabe(void);
             void daten_ausgabe(void);
             void char_eingabe(void);
             void spiel(void);
             void spieler_erzeugen( unsigned int l=0,unsigned int m=0, unsigned int s=0);
             int hauptschleife(void);
}spieler;

// begruessung wird initialisiert

void begruessung(void);
void beenden(void);

// main programm

int main(void) {
    Figur spieler;
    begruessung();
    spieler.daten_eingabe();
    spieler.char_eingabe();
    spieler.spiel();
    beenden();
    return 0;
}

// funktionen

void begruessung()
{
     cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n                ----------------------------------------------\n&quot; 
     &lt;&lt; &quot;                |                                            |\n&quot;
     &lt;&lt; &quot;                |         &gt;&gt;&gt; KUNGFUPANDA s GAME &lt;&lt;&lt;         |\n&quot;
     &lt;&lt; &quot;                |KungFuPanda:-]                    v.01(2009)|\n&quot;
     &lt;&lt; &quot;                ----------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\n&quot;;
}

void beenden()
{
     cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n                ----------------------------------------------\n&quot; 
     &lt;&lt; &quot;                |***          thanks for testing!         ***|\n&quot;
     &lt;&lt; &quot;                |**      visit www.scheissaufalle.de       **|\n&quot;
     &lt;&lt; &quot;                |***             KungFuPanda:-]           ***|\n&quot;
     &lt;&lt; &quot;                ----------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\n&quot;;
}

void Figur::daten_eingabe()
{

     spieler.level=0;
     spieler.exp=0;
     spieler.leben=0;
     spieler.mana=0;
     spieler.staerke=0;
     cout &lt;&lt; &quot;CharackterName: &quot;;
     cin &gt;&gt; spieler.name;
     cout &lt;&lt; &quot;Dein Alter: &quot;;
     if(!(cin &gt;&gt; spieler.alter)) {
              cerr &lt;&lt; &quot;falsche eingabe&quot;;
              exit(1);
              }
}

void Figur::daten_ausgabe()
{

     while( (cin.get()) != 32) {
            cout &lt;&lt; &quot;\n\n\n\n   &gt;&gt;&gt; SPIELER DATEN &lt;&lt;&lt;   \n\n\n\n\n\n&quot;;
            cout &lt;&lt; &quot;\n&quot; &lt;&lt; spieler.name &lt;&lt; &quot;\n\n&quot;
            &lt;&lt; spieler.klass_name &lt;&lt; &quot; &quot;
            &lt;&lt; spieler.alter &lt;&lt; &quot; Jahre&quot; &lt;&lt; &quot;\nLevel: &quot; &lt;&lt; spieler.level
            &lt;&lt; &quot;\nErfahrung: &quot; &lt;&lt; spieler.exp &lt;&lt; &quot;\nLeben: &quot;
            &lt;&lt; spieler.leben &lt;&lt; &quot;\nMana: &quot; &lt;&lt; spieler.mana &lt;&lt; &quot;\nStaerke: &quot; &lt;&lt; spieler.staerke &lt;&lt; &quot;\n\n\n\n\n\n\n\n&quot;;
            cout &lt;&lt; &quot;---------------------------------------------------------------&quot;
            &lt;&lt; &quot;\n(space=esc)                                        &gt;Go$uNo$u&lt; ...\n&quot;;
     }
}

void Figur::char_eingabe()
{

     cout &lt;&lt; &quot;KLASSEN - AUSWAHL\n\n&quot;
     &lt;&lt; &quot;Druecke 1 um 'Krieger'\n&quot;
     &lt;&lt; &quot;zu werden, oder 2 um 'Magier'\n&quot;
     &lt;&lt; &quot;auszuwaehlen!\n\n&quot;;
     if (!(cin &gt;&gt; spieler.klasse)) {
               cerr &lt;&lt; &quot;falsche eingabe&quot;;
               exit(1);
               }
     switch(spieler.klasse) {
                            case 1:
                                 // kopieren von Krieger in klass_name 
                                 strncpy(spieler.klass_name, &quot;Krieger&quot;,sizeof(spieler.klass_name)-1);
                                 spieler.klass_name[sizeof(spieler.klass_name)-1]='\0';
                                 // kopiert die werte in leben mana und staerke
                                 spieler.spieler_erzeugen( 100, 10, 20);
                                 break;
                            case 2:
                                 strncpy(spieler.klass_name, &quot;Magier&quot;,sizeof(spieler.klass_name)-1);
                                 spieler.klass_name[sizeof(spieler.klass_name)-1]='\0';
                                 spieler.spieler_erzeugen( 50, 100, 5);
                                 break;
                            default:
                                    cerr &lt;&lt; &quot;falsche eingabe\n&quot;;
                                    exit(1);
                                    }

}

void Figur::spiel()
{

     int cha; 
     // hauptschleife solange man nicht space drückt
     while((cha =cin.get()) !=32) {
               switch((char)cha) {
                           case 'd':
                                spieler.daten_ausgabe();
                                break;
                           default:
                                // hier kommt das spiel rein
                                spieler.hauptschleife();
                                }
     }

}

void Figur::spieler_erzeugen( unsigned int l, unsigned int m, unsigned int s)
{
     //hier werden die übergebenen werte an die klassen variablen übergeben... 

     spieler.mana=m;
     spieler.staerke=s;
     spieler.leben=l;
}

int Figur::hauptschleife()
{
    cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSpiel laueft...\n\n\n\n&quot;
    &lt;&lt; &quot;---------------------------------------------------------------\n&quot;
    &lt;&lt; &quot;(daten=d)                                           (space=esc) \n&quot;;
}
</code></pre>
<p>das ding funzt jetzt auch ... wer trozdem noch verbesserungs vorschläge hat. bitte raus damit <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1645680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645680</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Wed, 14 Jan 2009 20:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 20:19:15 GMT]]></title><description><![CDATA[<p>Naja:</p>
<ul>
<li>Einrückung wäre toll</li>
<li>Konstruktor auch</li>
<li>
<pre><code class="language-cpp"></code></pre>
</li>
</ul>
<p>}spieler;</p>
<pre><code>
Ist sehr C
*  ```cpp
char name[30];
</code></pre>
<p>std::string ist auch zum benutzen da</p>
<ul>
<li>Aufteilung in versch. Dateien wäre auch was schönes</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1645690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645690</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 14 Jan 2009 20:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 20:48:58 GMT]]></title><description><![CDATA[<p>hi drakon</p>
<p>ja konstruktoren kommen als nächstes ...<br />
ähmm einrückung... ist doch eingerückt oder was meinste ?</p>
<p>und zu }spieler;</p>
<p>wenn ich das nicht hinschreibe muss ich in jeder funktiion</p>
<p>Figur spieler;</p>
<p>definieren ...oder ?</p>
<p>hatte es so und dann gab es ein problem mit dem übergeben der werte</p>
<p>und von std::string (wussenähhhh) hab ich leider noch nichts gehört ... bin noch ein kleiner anfänger:)<br />
haste da vieleicht nen link zu ??</p>
<p>das aufteilen in mehrere dateien hat ich sowieso noch vor... bin irgendwie nur zu faul:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645710</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Wed, 14 Jan 2009 20:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 20:56:29 GMT]]></title><description><![CDATA[<p>Naja. Es ist merkwürdig eingerückt..</p>
<p>Globale Variablen sind &quot;böse&quot;. Also sollte man meiden, wenn möglich (was eigl. fast immer möglich ist..)</p>
<p>Hier hast du eine Referenz:<br />
<a href="http://www.cplusplus.com/reference/string/" rel="nofollow">http://www.cplusplus.com/reference/string/</a></p>
<p>Da hat es auch noch andere nützliche Dinge, wie std::vector , algorithmen usw. drin beschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645715</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 14 Jan 2009 20:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 22:27:12 GMT]]></title><description><![CDATA[<p>cool danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1645764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645764</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Wed, 14 Jan 2009 22:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 14 Jan 2009 22:46:29 GMT]]></title><description><![CDATA[<p>Beim Aufteilen in Header und Implementierungsdatei daran denken, das <code>using namespace std;</code> nicht in den Header zu schreiben. Sonst inkludierst du das möglicherweise an anderen Orten und legst den Namensraum frei, obwohl du das gar nicht willst.</p>
<pre><code class="language-cpp">int Figur::hauptschleife() 
{ 
    cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSpiel laueft...\n\n\n\n&quot; 
    &lt;&lt; &quot;---------------------------------------------------------------\n&quot; 
    &lt;&lt; &quot;(daten=d)                                           (space=esc) \n&quot;; 
}
</code></pre>
<p>Das kompiliert tatsächlich? Falls ja, unbedingt den Compiler/die IDE wechseln. (Tipp: Rückgabewert)</p>
<p>Für Variablen, die nur wenige bestimmte Werte annehmen können, lohnt sich ein <code>enum</code> . Das ist eine Sammlung von integralen Konstanten, die leicht über ihren Namen angesprochen und zu einem Typ zusammengefasst werden können.</p>
<pre><code class="language-cpp">enum klassentyp
{
    sehr_geheimnisvoller_ninja,
    kungfu_master,
    karate_kid
};

klassentyp klasse;
</code></pre>
<p>Das geht auch gut bei <code>switch()</code> :</p>
<pre><code class="language-cpp">switch (klasse)
{
    case sehr_geheimnisvoller_ninja: /* ... */
    case kungfu_master: /* ... */
    case karate_kid: /* ... */
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1645781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1645781</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 14 Jan 2009 22:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 21 Jan 2009 01:46:55 GMT]]></title><description><![CDATA[<p>oh das sind ja ne menge vorschläge (da kommt viel arbeit auf mich zu :-))</p>
<p>hab jetzt erstmal das proggi aufgeteilt und konstruktoren dazu jemacht!</p>
<p>so sieht das ganze jetzt aus :</p>
<pre><code class="language-cpp">// msmain.cpp

#include &quot;msheader.h&quot;

// main programm

int main(void) {
    Figur spieler;
    begruessung();
    spieler.daten_eingabe();
    spieler.char_eingabe();
    spieler.spiel();
    beenden();
    return 0;
}
</code></pre>
<p>...das ist die header datei:</p>
<pre><code class="language-cpp">// msheader.h

#include &lt;iostream&gt;
#include &lt;cstring&gt;

#ifndef _MSHEADER_H_
#define _MSHEADER_H_

using namespace std;

// klassen 

class Figur 
{
      private:
             //initialisierung der klassen variablen
             char name[30];
             unsigned int alter;
             unsigned int level;
             int exp;
             int klasse;
             unsigned int leben;
             unsigned int staerke;
             unsigned int mana;
             char klass_name[10];

      public:
             // konstruktoren
             Figur( unsigned int, unsigned int, unsigned int);
             Figur( unsigned int, unsigned int);
             Figur( unsigned int);
             Figur();

             // kassenmethoden
             void daten_eingabe(void);
             void daten_ausgabe(void);
             void char_eingabe(void);
             void spiel(void);
             void spieler_erzeugen( unsigned int l=0,unsigned int m=0, unsigned int s=0);
             int hauptschleife(void);
};

// funktionen werden initialisiert

void begruessung(void);
void beenden(void);

#endif
</code></pre>
<p>und zum schluss noch die definitionen:</p>
<pre><code class="language-cpp">// meinspiel.cpp

#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &quot;msheader.h&quot;

using namespace std;

// definition der konsturktoren

Figur::Figur( unsigned int l, unsigned int m, unsigned int s)
{
              leben=l;
              mana=m;
              staerke=s;
}

Figur::Figur( unsigned int l, unsigned int m)
{
              leben=l;
              mana=m;
              staerke=1;
}

Figur::Figur( unsigned int l)
{
              leben=l;
              mana=1;
              staerke=1;
}

Figur::Figur()
{
              leben=1;
              mana=1;
              staerke=1;
}

// funktionen

void begruessung()
{
     cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n                ----------------------------------------------\n&quot; 
     &lt;&lt; &quot;                |                                            |\n&quot;
     &lt;&lt; &quot;                |         &gt;&gt;&gt; KUNGFUPANDA s GAME &lt;&lt;&lt;         |\n&quot;
     &lt;&lt; &quot;                |KungFuPanda:-]                    v.01(2009)|\n&quot;
     &lt;&lt; &quot;                ----------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\n&quot;;
}

void beenden()
{
     cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n                ----------------------------------------------\n&quot; 
     &lt;&lt; &quot;                |***          thanks for testing!         ***|\n&quot;
     &lt;&lt; &quot;                |**      visit www.scheissaufalle.de       **|\n&quot;
     &lt;&lt; &quot;                |***             KungFuPanda:-]           ***|\n&quot;
     &lt;&lt; &quot;                ----------------------------------------------\n\n\n\n\n\n\n\n\n\n\n\n&quot;;
}

void Figur::daten_eingabe()
{

     spieler.level=0;
     spieler.exp=0;
     spieler.leben=0;
     spieler.mana=0;
     spieler.staerke=0;
     cout &lt;&lt; &quot;CharackterName: &quot;;
     cin &gt;&gt; spieler.name;
     cout &lt;&lt; &quot;Dein Alter: &quot;;
     if(!(cin &gt;&gt; spieler.alter)) {
              cerr &lt;&lt; &quot;falsche eingabe&quot;;
              exit(1);
              }
}

void Figur::daten_ausgabe()
{

     while( (cin.get()) != 32) {
            cout &lt;&lt; &quot;\n\n\n\n   &gt;&gt;&gt; SPIELER DATEN &lt;&lt;&lt;   \n\n\n\n\n\n&quot;;
            cout &lt;&lt; &quot;\n&quot; &lt;&lt; spieler.name &lt;&lt; &quot;\n\n&quot;
            &lt;&lt; spieler.klass_name &lt;&lt; &quot; &quot;
            &lt;&lt; spieler.alter &lt;&lt; &quot; Jahre&quot; &lt;&lt; &quot;\nLevel: &quot; &lt;&lt; spieler.level
            &lt;&lt; &quot;\nErfahrung: &quot; &lt;&lt; spieler.exp &lt;&lt; &quot;\nLeben: &quot;
            &lt;&lt; spieler.leben &lt;&lt; &quot;\nMana: &quot; &lt;&lt; spieler.mana &lt;&lt; &quot;\nStaerke: &quot; &lt;&lt; spieler.staerke &lt;&lt; &quot;\n\n\n\n\n\n\n\n&quot;;
            cout &lt;&lt; &quot;---------------------------------------------------------------&quot;
            &lt;&lt; &quot;\n(space=esc)                                        &gt;Go$uNo$u&lt; ...\n&quot;;
     }
}

void Figur::char_eingabe()
{

     cout &lt;&lt; &quot;KLASSEN - AUSWAHL\n\n&quot;
     &lt;&lt; &quot;Druecke 1 um 'Krieger'\n&quot;
     &lt;&lt; &quot;zu werden, oder 2 um 'Magier'\n&quot;
     &lt;&lt; &quot;auszuwaehlen!\n\n&quot;;
     if (!(cin &gt;&gt; spieler.klasse)) {
               cerr &lt;&lt; &quot;falsche eingabe&quot;;
               exit(1);
               }
     switch(spieler.klasse) {
                            case 1:
                                 // kopieren von Krieger in klass_name 
                                 strncpy(spieler.klass_name, &quot;Krieger&quot;,sizeof(spieler.klass_name)-1);
                                 spieler.klass_name[sizeof(spieler.klass_name)-1]='\0';
                                 // kopiert die werte in leben mana und staerke
                                 spieler.spieler_erzeugen( 100, 10, 20);
                                 break;
                            case 2:
                                 strncpy(spieler.klass_name, &quot;Magier&quot;,sizeof(spieler.klass_name)-1);
                                 spieler.klass_name[sizeof(spieler.klass_name)-1]='\0';
                                 spieler.spieler_erzeugen( 50, 100, 5);
                                 break;
                            default:
                                    cerr &lt;&lt; &quot;falsche eingabe\n&quot;;
                                    exit(1);
                                    }

}

void Figur::spiel()
{

     int cha; 
     // hauptschleife solange man nicht space drückt
     while((cha =cin.get()) !=32) {
               switch((char)cha) {
                           case 'd':
                                spieler.daten_ausgabe();
                                break;
                           default:
                                // hier kommt das spiel rein
                                spieler.hauptschleife();
                                }
     }

}

void Figur::spieler_erzeugen( unsigned int l, unsigned int m, unsigned int s)
{
     //hier werden die übergebenen werte an die klassen variablen übergeben... 

     spieler.mana=m;
     spieler.staerke=s;
     spieler.leben=l;
}

int Figur::hauptschleife()
{
    cout &lt;&lt; &quot;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSpiel laueft...\n\n\n\n&quot;
    &lt;&lt; &quot;---------------------------------------------------------------\n&quot;
    &lt;&lt; &quot;(daten=d)                                           (space=esc) \n&quot;;
}
</code></pre>
<p>so werd mir das ganze mal zu angucken...</p>
<p>ich hoffe ich hab nicht allzuviel falsch gemacht <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="🙂"
    /> bei mir funzt es aufjedenfall bis hier hin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1649252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1649252</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Wed, 21 Jan 2009 01:46:55 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Wed, 21 Jan 2009 18:58:00 GMT]]></title><description><![CDATA[<p>so kleiner nachtrag ... hab das ganze auf windows mit bloodshed laufen(hier compiliert er das ganze auch),<br />
doch als ich gestern das ganze unter ubuntu compilieren wollte kamen jede menge fehlermeldungen. du hast also recht ich sollte den compiler wechseln. <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>welchen compiler sollte ich unter windows verwnden, damit mir sowas nicht mehr passiert ?</p>
<blockquote>
<p>Beim Aufteilen in Header und Implementierungsdatei daran denken, das using namespace std; nicht in den Header zu schreiben. Sonst inkludierst du das möglicherweise an anderen Orten und legst den Namensraum frei, obwohl du das gar nicht willst.</p>
</blockquote>
<p>also in meinem buch (c++ von a bis z), hat er das halt in die header datei reingeschrieben, darum hab ich das einfach mal auch gemacht. naja werd wohl mal wieder ein bischen rumbasteln und ausprobieren müssen <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>...bis die tage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1649773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1649773</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Wed, 21 Jan 2009 18:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Thu, 22 Jan 2009 12:12:48 GMT]]></title><description><![CDATA[<p>Anstatt vier Konstruktoren zu schreiben, kannst du Standardparameter einsetzen. Zudem wäre es besser, die Initialisierungsliste zu verwenden (anstatt der Zuweisungen im Konstruktorrumpf).</p>
<pre><code class="language-cpp">Figur::Figur( unsigned int l = 1, unsigned int m = 1, unsigned int s = 1)
: leben(l), mana(m), staerke(s) // &lt;- Initialisierungsliste initialisert Member
{

}
</code></pre>
<p>So kannst du den Konstruktor wahlweise mit 0, 1, 2 oder 3 Argumenten aufrufen. Für die Argumente, die du weglässt, wird automatisch 1 angenommen (der Wert hinter dem =).</p>
<p>Edit: Unter Windows würde ich unbedingt Microsoft Visual C++ 2008 Express empfehlen, die ist kostenlos und meines Erachtens sehr gut. Ansonsten gibts auch noch Code::Blocks.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650120</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 22 Jan 2009 12:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Thu, 22 Jan 2009 16:12:59 GMT]]></title><description><![CDATA[<p>na das is doch mal ne ansage!<br />
danke für den konstruktiven konstruktor tip <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="🙂"
    /><br />
... werd das gleich mal testen</p>
<p>ps visual express läd schon runter(huch ist ja umsonst, was ist denn nur mit unserem bill los, nicht das er krank ist oder so :))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650354</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Thu, 22 Jan 2009 16:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Thu, 22 Jan 2009 16:21:29 GMT]]></title><description><![CDATA[<p>kungfupanda schrieb:</p>
<blockquote>
<p>huch ist ja umsonst, was ist denn nur mit unserem bill los, nicht das er krank ist oder so :))</p>
</blockquote>
<p>der grund sollte auf der hand liegen...<br />
wenn die leute das programmieren mit msvc erlernen, liegt es ja auch nah, dass sie später mit dieser ide arbeiten möchten, weil sie sich dann schon damit auskennen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650362</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 22 Jan 2009 16:21:29 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Thu, 22 Jan 2009 19:06:54 GMT]]></title><description><![CDATA[<p>Was? Wo bleibt den das ganze Standard-Zeugs?!<br />
Leute.. ihr lasst nach..</p>
<blockquote>
<pre><code class="language-cpp">int main(void) {
</code></pre>
</blockquote>
<p>void in Funktionen anzugeben, die keine Parameter erwarten ist unnötig und imo bäh..<br />
<strong>Tragik</strong>: gering</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">return 0;
}
</code></pre>
</blockquote>
<p>Ein return ist bei main nicht erforderlich (im Gegensatz zu allen anderen Funktionen, die einen Wert zurückgeben. Imo eine schrekliche Inkonsistenz)<br />
<strong>Tragik</strong>: keine</p>
<blockquote>
<pre><code class="language-cpp">using namespace std;
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Das in einem Header.. Das das noch niemand beanstandet hat verwundert mich..<br />
Dein Header wird von anderen Dateien inkludiert und ohne es zu wissen gibst du allem darunter vor, dass sie den Namensraum std benutzen sollen.<br />
<strong>Tragik</strong>: hoch</p>
<blockquote>
<pre><code class="language-cpp">char name[30];
</code></pre>
</blockquote>
<p>Ein C-Array für einen Namen? - Wir leben in Zeiten von C++ und std::string.<br />
<strong>Tragik</strong>: hoch</p>
<p>Allgemeine Einrückung: Schreklich (habe aber schon schlimmeres gesehen)<br />
<strong>Tragik</strong>: mittel (schlecht eingerückten Code liest niemand gerne und verwirrt nur unnötig)</p>
<blockquote>
<pre><code class="language-cpp">#ifndef _MSHEADER_H_
</code></pre>
</blockquote>
<p>Bezeichner mit Unterstrichen sind für den Compiler reserviert. Du kannst und solltest dieses define so kryptisch nennen, wie du willst, aber eine Regel gibt es: Fang nie mit einem Unterstrich an. <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="😉"
    /><br />
<strong>Tragik</strong>: mittel (solange der Bezeichner nicht gengut wird, gehts gut. Falls schon: viel Spass beim suchen.</p>
<blockquote>
<pre><code class="language-cpp">Figur( unsigned int, unsigned int, unsigned int);
</code></pre>
</blockquote>
<p>Auch wenn es nicht notwending ist bei der Deklaration Namen für die Parameter zu vergeben, würde ich es dringenst empfehlen, da die für sich sprechen und ein besseres Verständnis für die Schnittstelle geben.<br />
<strong>Tragik</strong>: mittel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650474</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 22 Jan 2009 19:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Sat, 31 Jan 2009 19:19:18 GMT]]></title><description><![CDATA[<p>Ja ich weiss es ist schon lange her... aber ich hatte halt viel zu tun und es war auch nicht ganz einfach eure vorschläge unterzubringen muss ich sagen. Ich hab einfach wieder ein ganz neues prgramm angefangen, weil mir das zu umständlich war das alte komplett umzuschreiben.</p>
<p>hier ist jetzt das ergebnis...<br />
main datei:</p>
<pre><code class="language-cpp">//main
#include &quot;kungfu.h&quot;

using namespace std;

int main()
{
	begruessung();
	Figur spieler(&quot;unbekannt&quot;,0,0,0,0,0,0);
	unsigned int k = spieler.klassen_wahl();
	spieler.klassen_uebergabe(k);
	spieler.hauptschleife();
	verabschiedung();
	return 0;
}
</code></pre>
<p>header datei:</p>
<pre><code class="language-cpp">// kungfu.h

#include &lt;iostream&gt;
#include &lt;string&gt;

#ifndef _KUNGFU_H_
#define _KUNGFU_H_

class Figur
{
private:
	std::string name;
	std::string klasse;
	unsigned int alter;
	unsigned int level;
	unsigned int leben;
	unsigned int mana;
	unsigned int staerke;
	unsigned int char_klasse;

public:
	//konstuktoren
	Figur( std::string str1, unsigned int a, unsigned int lvl, unsigned int l, unsigned int m, unsigned int s, unsigned int c);
	Figur( std::string str1, unsigned int a, unsigned int lvl, unsigned int l, unsigned int m, unsigned int s);
	Figur( std::string str1, unsigned int a, unsigned int lvl, unsigned int l, unsigned int m);
	Figur( std::string str1, unsigned int a, unsigned int lvl, unsigned int l);
	Figur( std::string str1, unsigned int a, unsigned int lvl);
	Figur( std::string str1, unsigned int a);
	Figur( std::string str1);
	Figur();

	//methoden
	void mache_neuen_spieler( std::string str1, unsigned int a, unsigned int lvl, unsigned int l,unsigned int m, unsigned int s, unsigned int c);
	void zeige_spieler_daten(void);
	unsigned int klassen_wahl(void);
	void klassen_uebergabe( unsigned int ck);
	void hauptschleife();
};

void begruessung(void);
void verabschiedung(void);

#endif
</code></pre>
<p>der rest:-):</p>
<pre><code class="language-cpp">// kungfu.cpp
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;kungfu.h&quot;

using namespace std;

// normale funktionen 

void begruessung(void)
{
	cout &lt;&lt; &quot;\n\n\n\n\n               *----------------------------------------------------------------------------*\n&quot; &lt;&lt; 
	&quot;               *                             KungFuPand`s Game                              *\n&quot; &lt;&lt;
	&quot;               *----------------------------------------------------------------------------*\n\n\n\n\n\n&quot;;
}

void verabschiedung(void)
{
	cout &lt;&lt; &quot;\n\n\n\n\n               *----------------------------------------------------------------------------*\n&quot; &lt;&lt; 
	&quot;               *                                 Aufwiedersehn                              *\n&quot; &lt;&lt;
	&quot;               *----------------------------------------------------------------------------*\n\n\n\n\n\n&quot;;
}

// klassen konstruktoren

Figur::Figur( std::string str1=&quot;unbekannt&quot;, unsigned int a=0, unsigned int lvl=0, unsigned int l=0, unsigned int m=0, unsigned int s=0, unsigned int c=0)
	:name(str1), alter(a), level(lvl), leben(l), mana(m), staerke(s), char_klasse(c)
{
	cout &lt;&lt; &quot;Neuen Charackter erstellen!\nBitte geben Sie den Namen ein: &quot; &lt;&lt; &quot;\n&quot;;
	getline(cin, name);
	cout &lt;&lt; &quot;\nBitte geben Sie ihr Alter ein: &quot; &lt;&lt; &quot;\n&quot;;
	if(!(cin &gt;&gt; alter)) 
	{
	cerr &lt;&lt; &quot;falsch&quot; &lt;&lt; &quot;\n&quot;;
	exit (1);
	}
}

Figur::Figur()
	:name(&quot;unbekannt&quot;), alter(0), level(0), leben(0), mana(0), staerke(0), char_klasse(0)
{

}

// klassen methoden

/* nicht mehr notwendig da konstruktor vorhanden
void Figur::mache_neuen_spieler( std::string str1, unsigned int a, unsigned int lvl, unsigned int l,unsigned int m, unsigned int s, unsigned int c)
{

	cout &lt;&lt; &quot;name: &quot; &lt;&lt; &quot;\n&quot;;
	getline(cin, name);
	cout &lt;&lt; &quot;alter: &quot; &lt;&lt; &quot;\n&quot;;
	if(!(cin &gt;&gt; alter))
	{
		cerr &lt;&lt; &quot;falsch&quot; &lt;&lt; &quot;\n&quot;;
		exit (1);
	}
}
*/

void Figur::zeige_spieler_daten(void)
{
	int schleifen_abfrage;
	while( ( schleifen_abfrage = cin.get()) != 32)
	{	
	cout &lt;&lt; &quot;\n-------Spieler Daten-------&quot; &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;::&quot; &lt;&lt; klasse &lt;&lt; &quot;::\n&quot;;
	cout &lt;&lt; &quot;CharakterName: &quot; &lt;&lt; name &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Dein Alter: &quot; &lt;&lt; alter &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Dein Level: &quot; &lt;&lt; level &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Lebensenergie: &quot; &lt;&lt; leben &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Mana: &quot; &lt;&lt; mana &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Staerke: &quot; &lt;&lt; staerke &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;---------------------------\n&quot;;
	cout &lt;&lt; &quot;(SPACE=EXIT)\n&quot;;
	}
}

unsigned int Figur::klassen_wahl(void)
{
	cout &lt;&lt; &quot;\nKlassen Auswahl!\n&quot; &lt;&lt;
	&quot;(1=KampfPanda)(2=KarateYeti)\n&quot;;
	if(!(cin &gt;&gt; char_klasse))
	{
		cerr &lt;&lt; &quot;falsch&quot;;
	}
	return char_klasse;
}

void Figur::klassen_uebergabe( unsigned int ck)
{
	switch(char_klasse)
	{
		case 1:
			klasse= &quot;KampfPanda&quot;;
			staerke= 100;mana=10;leben=200;
			break;
		case 2:
			klasse= &quot;KarateYeti&quot;;
			staerke= 50;mana=100;leben=100;
			break;
		default:
			klasse= &quot;KeineKlasse&quot;;
	}
}

void Figur::hauptschleife(void)
{
	int schleifen_abfrage;
	while( (schleifen_abfrage= cin.get()) != EOF)
	{
		switch( (char)schleifen_abfrage)
		{

			case 'd':
				zeige_spieler_daten();
				break;
			case 'h':
				cout &lt;&lt; &quot;HELP :-)&quot;;
				break;
			default:
				// spiel
				cout &lt;&lt; &quot;\n\n\n\n\n\n\n        *****SPIEL LAEUFT*****\n\n\n\n\n\n\n&quot;;
				cout &lt;&lt; &quot;(STRG-D=EXIT)(d=SPIELER-DATEN)(h=HELP)\n\n&quot;;
		}

	}
}
</code></pre>
<p>der gesammte code ist jetzt viel kürzer und<br />
meiner meinung auch übersichtlicher, das ergebnis ist<br />
aber so in etwa das gleiche wie vorher.<br />
hab natürlich auch den compiler gewechselt<br />
das ganze hab ich jetzt unter ubuntu mit kdevelop gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1655674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1655674</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Sat, 31 Jan 2009 19:19:18 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Sat, 31 Jan 2009 19:25:59 GMT]]></title><description><![CDATA[<p>Ich weiss zwar nicht, was das Problem war/ist, aber das hier ist besser:</p>
<pre><code class="language-cpp">Figur( std::string str1=&quot;unbekannt&quot;, unsigned int a=0, unsigned int lvl=0, unsigned int l=0, unsigned int m=0, unsigned int s=0, unsigned int c=0);
</code></pre>
<p>Dann kannst du dir die ganzen Implementierungen sparen (was du eigl. auch falsch gemacht hast.. )</p>
<p>Das sieht dann nur so aus:</p>
<pre><code class="language-cpp">Figur::Figur( std::string str1, unsigned int a, unsigned int lvl, unsigned int l, unsigned int m, unsigned int s, unsigned int c)
    :name(str1), alter(a), level(lvl), leben(l), mana(m), staerke(s), char_klasse(c)
{...}
</code></pre>
<p>Merke: Keine Defaultwerte in der Implementierung. Das gehört in den Header.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1655680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1655680</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 31 Jan 2009 19:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to Testprogramm bricht ab...?? on Tue, 03 Feb 2009 16:24:24 GMT]]></title><description><![CDATA[<p>jo super hast recht so gehts auch <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="🙂"
    /> danke !!!<br />
funzt alles</p>
<p>ps : wer möchte das ich den ganzen code nochmal poste kann das ja sagen,<br />
ich denke aber sollte auch so klar sein.<br />
nochmal thx für eure hilfe!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1657340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1657340</guid><dc:creator><![CDATA[kungfupanda]]></dc:creator><pubDate>Tue, 03 Feb 2009 16:24:24 GMT</pubDate></item></channel></rss>