<?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[Funktionsabbruch]]></title><description><![CDATA[<p>Hey!<br />
bei meiner Funktion, deren Aufgabe es ist, den User nach seiner Sprache zu fragen und ihn dann in derselben zu begrüßen, läuft was nicht richtig. Der Vorname klappt, aber nach der Frage nach dem Nachnamen bricht er ab und schreibt dann schon die Begrüßung, ohne jedoch wenigstens den Vornamen auch komplett auszugeben... frage mich was da fehlt?<br />
Gruß</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

void deutsch();
void englisch();
char vorname;
char nachname;
char *zeiger_auf_vornamen;
char *zeiger_auf_nachnamen;

int main()

{
    int sprache;

            cout &lt;&lt; &quot;Bitte Sprache wählen (deutsch=1 oder englisch=2): &quot;;
            cin  &gt;&gt; sprache;

            switch(sprache) {

        case 1: deutsch();
                        break;

        case 2: englisch();
                        break;

        default: cout &lt;&lt; &quot;Falsche Sprache&quot;&lt;&lt; endl;
        break;

    }

            if (sprache==1)
                cout &lt;&lt; &quot;Herzlich Willkommen &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt; &quot; &quot; &lt;&lt; *zeiger_auf_nachnamen &lt;&lt; &quot;Wir wünschen Ihnen einen angenehmen Aufenthalt&quot;&lt;&lt; endl;
            if (sprache==2) cout &lt;&lt; &quot;Welcome &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt; &quot; &quot; &lt;&lt; *zeiger_auf_nachnamen &lt;&lt; &quot;We wish you a pleasant stay&quot;&lt;&lt; endl;

}

    void deutsch()
    {
            cout &lt;&lt; &quot;Bitte geben Sie Ihren Vornamen ein: &quot; &lt;&lt; endl;
            cin &gt;&gt; vorname;
            cout &lt;&lt; &quot;Bitte geben Sie Ihren Nachnamen ein: &quot;&lt;&lt; endl;
            cin &gt;&gt; nachname;
            zeiger_auf_vornamen = &amp;vorname;
            zeiger_auf_nachnamen = &amp;nachname;
            return;

    }

            void englisch()
                    {
            cout &lt;&lt; &quot;Please wirite your surname: &quot;&lt;&lt; endl;
            cin &gt;&gt; vorname;
            cout &lt;&lt; &quot;Please write your prename: &quot;&lt;&lt; endl;
            cin &gt;&gt; nachname;
            zeiger_auf_vornamen = &amp;vorname;
            zeiger_auf_nachnamen = &amp;nachname;
            return;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/310317/funktionsabbruch</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 19:27:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310317.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Nov 2012 15:43:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsabbruch on Thu, 08 Nov 2012 16:01:38 GMT]]></title><description><![CDATA[<p>Hey!<br />
bei meiner Funktion, deren Aufgabe es ist, den User nach seiner Sprache zu fragen und ihn dann in derselben zu begrüßen, läuft was nicht richtig. Der Vorname klappt, aber nach der Frage nach dem Nachnamen bricht er ab und schreibt dann schon die Begrüßung, ohne jedoch wenigstens den Vornamen auch komplett auszugeben... frage mich was da fehlt?<br />
Gruß</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

void deutsch();
void englisch();
char vorname;
char nachname;
char *zeiger_auf_vornamen;
char *zeiger_auf_nachnamen;

int main()

{
    int sprache;

            cout &lt;&lt; &quot;Bitte Sprache wählen (deutsch=1 oder englisch=2): &quot;;
            cin  &gt;&gt; sprache;

            switch(sprache) {

        case 1: deutsch();
                        break;

        case 2: englisch();
                        break;

        default: cout &lt;&lt; &quot;Falsche Sprache&quot;&lt;&lt; endl;
        break;

    }

            if (sprache==1)
                cout &lt;&lt; &quot;Herzlich Willkommen &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt; &quot; &quot; &lt;&lt; *zeiger_auf_nachnamen &lt;&lt; &quot;Wir wünschen Ihnen einen angenehmen Aufenthalt&quot;&lt;&lt; endl;
            if (sprache==2) cout &lt;&lt; &quot;Welcome &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt; &quot; &quot; &lt;&lt; *zeiger_auf_nachnamen &lt;&lt; &quot;We wish you a pleasant stay&quot;&lt;&lt; endl;

}

    void deutsch()
    {
            cout &lt;&lt; &quot;Bitte geben Sie Ihren Vornamen ein: &quot; &lt;&lt; endl;
            cin &gt;&gt; vorname;
            cout &lt;&lt; &quot;Bitte geben Sie Ihren Nachnamen ein: &quot;&lt;&lt; endl;
            cin &gt;&gt; nachname;
            zeiger_auf_vornamen = &amp;vorname;
            zeiger_auf_nachnamen = &amp;nachname;
            return;

    }

            void englisch()
                    {
            cout &lt;&lt; &quot;Please wirite your surname: &quot;&lt;&lt; endl;
            cin &gt;&gt; vorname;
            cout &lt;&lt; &quot;Please write your prename: &quot;&lt;&lt; endl;
            cin &gt;&gt; nachname;
            zeiger_auf_vornamen = &amp;vorname;
            zeiger_auf_nachnamen = &amp;nachname;
            return;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2268998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2268998</guid><dc:creator><![CDATA[flochen1]]></dc:creator><pubDate>Thu, 08 Nov 2012 16:01:38 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Thu, 08 Nov 2012 15:55:49 GMT]]></title><description><![CDATA[<p>Wichtig:<br />
1. Keine globalen Variablen benutzen<br />
2. Nicht ohne guten Grund char-Arrays anstatt std::string benutzen, insbesondere wenn man mit char-Arrays nicht umgehen kann.</p>
<p>Formulier dein Programm mit std::string und mit sauberen Variablenübergaben und es wird funktionieren.</p>
<p>(Unmittelbarer Fehler ist hier übrigens, dass dein vorname und nachname vom Typ char sind, der nur ein einzelnes Zeichen repräsentiert. Das ist aber bloß ein Symptom von den genannten Hauptfehler, vor allem von Punkt 2)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2269002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269002</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 08 Nov 2012 15:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Thu, 08 Nov 2012 16:02:31 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

void deutsch();
void englisch();
char vorname;
char nachname;
char *zeiger_auf_vornamen;
char *zeiger_auf_nachnamen;

int main()
{
    int sprache;

    cout &lt;&lt; &quot;Bitte Sprache wählen (deutsch=1 oder englisch=2): &quot;;
    cin &gt;&gt; sprache;

    switch(sprache) {
        case 1: deutsch();
        break;
        case 2: englisch();
        break;
        default: cout &lt;&lt; &quot;Falsche Sprache&quot;&lt;&lt; endl;
        //default brauch kein break! es ist die letzte Option
    }

    if (sprache==1) {
        cout &lt;&lt; &quot;Herzlich Willkommen &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt;
        &quot; &quot; &lt;&lt;    *zeiger_auf_nachnamen &lt;&lt; &quot;Wir wünschen Ihnen einen&quot;  
        &lt;&lt; &quot; angenehmen Aufenthalt&quot;&lt;&lt; endl;
    }
    if (sprache==2) {
       cout &lt;&lt; &quot;Welcome &quot; &lt;&lt; *zeiger_auf_vornamen &lt;&lt; &quot; &quot; &lt;&lt;     
       *zeiger_auf_nachnamen &lt;&lt; &quot;We wish you a pleasant stay&quot;&lt;&lt; endl;
    }
}

void deutsch()
{
    cout &lt;&lt; &quot;Bitte geben Sie Ihren Vornamen ein: &quot; &lt;&lt; endl;
    cin &gt;&gt; vorname;
    cout &lt;&lt; &quot;Bitte geben Sie Ihren Nachnamen ein: &quot;&lt;&lt; endl;
    cin &gt;&gt; nachname;
    zeiger_auf_vornamen = &amp;vorname;
    zeiger_auf_nachnamen = &amp;nachname;
    //void brauch kein return !
}

void englisch()
{
    cout &lt;&lt; &quot;Please wirite your surname: &quot;&lt;&lt; endl;
    cin &gt;&gt; vorname;
    cout &lt;&lt; &quot;Please write your prename: &quot;&lt;&lt; endl;
    cin &gt;&gt; nachname;
    zeiger_auf_vornamen = &amp;vorname;
    zeiger_auf_nachnamen = &amp;nachname;
    //void brauch kein return !
}
</code></pre>
<p>Du solltest lieber std::string benutzen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2269007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269007</guid><dc:creator><![CDATA[codeedit]]></dc:creator><pubDate>Thu, 08 Nov 2012 16:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Thu, 08 Nov 2012 16:20:04 GMT]]></title><description><![CDATA[<p>Prima, es funktioniert!<br />
JA, da vertiefe ich mich jetzt mal in Richtung saubere Variablenübergabe und char...<br />
besten Dank für die prompte Hilfestellung,<br />
Grüße ins Forum</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2269011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269011</guid><dc:creator><![CDATA[flochen1]]></dc:creator><pubDate>Thu, 08 Nov 2012 16:20:04 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Thu, 08 Nov 2012 17:50:29 GMT]]></title><description><![CDATA[<pre><code>#include &lt;limits&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

void clear_istream( std::istream &amp;is )
{
    is.clear();
    is.ignore( numeric_limits&lt; streamsize &gt;::max(), '\n' );
}

typedef enum {  LANGUAGE_DE, LANGUAGE_EN, LANGUAGE_MAX } language_t;
typedef enum {  MSG_LANGUAGE_NAME, MSG_CHOOSE_LANGUAGE, MSG_INPUT_ERROR,
                MSG_INPUT_NAME, MSG_INPUT_SURNAME, MSG_WELCOME, MSG_WISH } message_t;

int main()
{
    std::vector&lt; std::string &gt; language_de;
    std::vector&lt; std::string &gt; language_en;
    language_de.push_back( &quot;Deutsch&quot; );
    language_en.push_back( &quot;English&quot; );
    language_de.push_back( &quot;Bitte waehlen Sie Ihre Sprache:&quot; );
    language_en.push_back( &quot;Please choose your language:&quot; );
    language_de.push_back( &quot;Ungueltige Eingabe. Bitte versuchen Sie es erneut!\n&quot; );
    language_en.push_back( &quot;Input error. Please try again!\n&quot; );
    language_de.push_back( &quot;Bitte geben Sie Ihren Vornamen ein: &quot; );
    language_en.push_back( &quot;Please enter your name: &quot; );
    language_de.push_back( &quot;Bitte geben Sie Ihren Nachnamen ein: &quot; );
    language_en.push_back( &quot;Please enter your surname: &quot; );
    language_de.push_back( &quot;Herzlich Willkommen&quot; );
    language_en.push_back( &quot;Welcome&quot;);
    language_de.push_back( &quot;Wir wuenschen Ihnen einen angenehmen Aufenthalt!&quot; );
    language_en.push_back( &quot;We wish you a pleasant stay!&quot; );

    std::vector&lt; std::vector&lt; std::string &gt; &gt; languages;
    languages.push_back( language_de );
    languages.push_back( language_en );

    std::vector&lt; std::vector&lt; std::string &gt; &gt;::size_type choosen_language = 1;

    for( auto it = languages.begin(); it != languages.end(); ++it, ++choosen_language ) {

        cout    &lt;&lt; ( *it )[ MSG_CHOOSE_LANGUAGE ] &lt;&lt; &quot; ( &quot;
                &lt;&lt; ( *it )[ MSG_LANGUAGE_NAME ] &lt;&lt; &quot; = &quot; &lt;&lt; choosen_language &lt;&lt; &quot; )\n&quot;;
    }

    choosen_language = LANGUAGE_MAX + 1;
    while( !( cin &gt;&gt; choosen_language ) || ( !choosen_language || choosen_language &gt; LANGUAGE_MAX ) ) {

        for( auto it = languages.begin(); it != languages.end(); ++it ) {

            cout &lt;&lt; ( ( *it )[ MSG_INPUT_ERROR ] );
        }
        cout.put( '\n' );
        cout.flush();
        clear_istream( cin );
    }

    --choosen_language;

    cout &lt;&lt; languages[ choosen_language ][ MSG_INPUT_NAME ];
    std::string( name );
    cin &gt;&gt; name;

    cout &lt;&lt; languages[ choosen_language ][ MSG_INPUT_SURNAME ];
    std::string surname;
    cin &gt;&gt; surname;

    cout &lt;&lt; languages[ choosen_language ][ MSG_WELCOME ] &lt;&lt; &quot;, &quot; &lt;&lt; name &lt;&lt; &quot; &quot; &lt;&lt; surname &lt;&lt; &quot;!\n&quot;;
    cout &lt;&lt; languages[ choosen_language ][ MSG_WISH ] &lt;&lt; &quot;\n\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2269045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269045</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 08 Nov 2012 17:50:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Fri, 09 Nov 2012 10:54:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8250">@Swordfish</a><br />
Solche Lösungen bringen dann Probleme, wenn die einzelnen Satzbauteile in unterschiedlichen Sprachen an verschiedenen Positionen stehen. Ich finde Platzhalter flexibler:</p>
<p>Pseudo Code:</p>
<pre><code class="language-cpp">Something LanguageData;

std::string make_localized_string( unsigned int ID, const std::string&amp; W1 )
{
   ostringstream oss;

   std::string Entry = LanguageData.get_entry( ID_Welcome );
   foreach( Token in Entry )
   {
      if( oss.tellp() != 0 ) oss &lt;&lt; &quot; &quot;;
      if( Token is PlaceHolder ) oss &lt;&lt; W1;
      else                       oss &lt;&lt; Token;
   }
   return oss.str();
}

std::string make_localized_string( unsigned int ID, const std::string&amp; W1, const std::string&amp; W2 )
{
   ostringstream oss;

   std::string Entry = LanguageData.get_entry( ID_Welcome );
   foreach( Token in Entry )
   {
      if( oss.tellp() != 0 ) oss &lt;&lt; &quot; &quot;;
      if( Token is PlaceHolder1 )       oss &lt;&lt; W1;
      else if( Token is PlaceHolder2 )  oss &lt;&lt; W2;
      else                              oss &lt;&lt; Token;
   }
   return oss.str();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2269215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269215</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 09 Nov 2012 10:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Fri, 09 Nov 2012 11:06:19 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<pre><code>...code...
</code></pre>
</blockquote>
<p>Du bist ja voll der Hecht. Das bringt einen Anfänger natürlich richtig weiter. Vor allem, weil der Code so gut kommentiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2269225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269225</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 09 Nov 2012 11:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsabbruch on Fri, 09 Nov 2012 12:52:33 GMT]]></title><description><![CDATA[<p>schau, ich habe in den letzten zwei Jahren ziemlich selten programmier. Z. Zt. bin ich ueber (fast) jede sinnfreie Aufgabe froh, um die Basics wieder griffbereit in den aktiven Wortschatz zu bekommen. Wen es stört möge meine Lösungen bitte ignorieren. Sollte sich jemand die Mühe machen konstruktiv zu kritisieren, bin ich dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2269279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2269279</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Fri, 09 Nov 2012 12:52:33 GMT</pubDate></item></channel></rss>