<?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[Leertaste in einer String Variable]]></title><description><![CDATA[<p>Hi ich beschäftige mich erst seit kurzem mit C++, heute habe ich versucht eine Simulation zu Programmiern bin aber stecken geblieben bei einem problem.<br />
Folgendes, ich wollte in einer string variable eine leertaste schreiben aber das wird vom compiler ignoriert oder sowas, und als ich im programm dann das selbe schrieb was in der variable ist hat er sie nicht erkannt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<pre><code>#include &lt;iostream.h&gt;
#include &lt;string&gt;

int main()
{
    std::string eingname;
    const std::string FIRSTACC = &quot;Test Name&quot;;
    const std::string SECONDACC = &quot;Peter&quot;;
    const std::string THIRDACC = &quot;Shissl Manissl&quot;;

    cout &lt;&lt; &quot;Willkommen.\nDas ist die Einlogg-Software der HoslingerBank.\nBitte Loggen Sie sich ein.\n\n&quot;;
    cout &lt;&lt; &quot;Benutzername: &quot;;
    cin &gt;&gt; eingname;
    if ((eingname == FIRSTACC) || (eingname == SECONDACC) || (eingname == THIRDACC))
    {
        cout &lt;&lt; &quot;OK!\n&quot;;
    }  
    system(&quot;pause&quot;);
}
</code></pre>
<p>danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174668/leertaste-in-einer-string-variable</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 19:26:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174668.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Mar 2007 19:18:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 19:18:16 GMT]]></title><description><![CDATA[<p>Hi ich beschäftige mich erst seit kurzem mit C++, heute habe ich versucht eine Simulation zu Programmiern bin aber stecken geblieben bei einem problem.<br />
Folgendes, ich wollte in einer string variable eine leertaste schreiben aber das wird vom compiler ignoriert oder sowas, und als ich im programm dann das selbe schrieb was in der variable ist hat er sie nicht erkannt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<pre><code>#include &lt;iostream.h&gt;
#include &lt;string&gt;

int main()
{
    std::string eingname;
    const std::string FIRSTACC = &quot;Test Name&quot;;
    const std::string SECONDACC = &quot;Peter&quot;;
    const std::string THIRDACC = &quot;Shissl Manissl&quot;;

    cout &lt;&lt; &quot;Willkommen.\nDas ist die Einlogg-Software der HoslingerBank.\nBitte Loggen Sie sich ein.\n\n&quot;;
    cout &lt;&lt; &quot;Benutzername: &quot;;
    cin &gt;&gt; eingname;
    if ((eingname == FIRSTACC) || (eingname == SECONDACC) || (eingname == THIRDACC))
    {
        cout &lt;&lt; &quot;OK!\n&quot;;
    }  
    system(&quot;pause&quot;);
}
</code></pre>
<p>danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237688</guid><dc:creator><![CDATA[*DooM*]]></dc:creator><pubDate>Thu, 01 Mar 2007 19:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 19:21:20 GMT]]></title><description><![CDATA[<p>Von welchem Leerzeichen redest du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237689</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Thu, 01 Mar 2007 19:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 19:22:34 GMT]]></title><description><![CDATA[<p>Das liegt daran das cin nur bis zum nächten Space liest. getline sollte sein was du suchst:<br />
std::getline(std::cin, eingname);</p>
<p>Außerdem solltest du statt iostream.h nur iostream benutzen (dann sind auch cin und cout im std-Namespace).</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237690</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 01 Mar 2007 19:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 20:23:34 GMT]]></title><description><![CDATA[<p>ey danke für die schnelle hilfe xD<br />
aber was bringt das std:: eigentlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237733</guid><dc:creator><![CDATA[*DooM*]]></dc:creator><pubDate>Thu, 01 Mar 2007 20:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 20:34:58 GMT]]></title><description><![CDATA[<p>²DooM² schrieb:</p>
<blockquote>
<p>ey danke für die schnelle hilfe xD<br />
aber was bringt das std:: eigentlich</p>
</blockquote>
<p>hi,</p>
<p>Also es ist ein Namensbereich,aber</p>
<pre><code class="language-cpp">using namespace std;
</code></pre>
<p>damit kannst das sozusagen entfernen^^</p>
<p>mfg daniel <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1237745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237745</guid><dc:creator><![CDATA[:Daniel:]]></dc:creator><pubDate>Thu, 01 Mar 2007 20:34:58 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 22:35:30 GMT]]></title><description><![CDATA[<p>okay danke, also ich hab jetzt brav weiter geschrieben und bin auf ein weiteres problem gestoßen hoffe um hilfe ich grübel schon 1 stunde rum, sry wenn das langsam belästigent wird ^^.<br />
Wär hamma wenn ihr mir helfen könnt!<br />
Das problem ist einfach das wenn es nachdem man den Menüpunkt 1. wählt das programm automatisch schließt wobei Zeile 37 noch angezeigt wird und es anschließend sofort zu zeile 92 springt</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

    void login();
    std::string eingname;		// Eingebener Benutzername
    std::string eingpin;		// Eingebene PIN
    std::string mompin;			// PIN wird an Benutzername zugewiesen mit dieser Variable
    int start;
    const std::string FIRSTACC = &quot;Peter Mauer&quot;;
    const std::string SECONDACC = &quot;Silo Gernandes&quot;;
    const std::string THIRDACC = &quot;Sebastian Witz&quot;;
    const std::string FIRSTPW = &quot;12345&quot;;
    const std::string SECONDPW = &quot;11223&quot;;
    const std::string THIRDPW = &quot;12233&quot;;

int main()
{    
    std::cout &lt;&lt; &quot;Willkommen.\nDas ist die Einlogg-Software der HoslingerBank.\nBitte Loggen Sie sich ein.\n\n&quot;;
    std::cout &lt;&lt; &quot;1. Einlogen\n2. Beenden\n&quot;;
    std::cout &lt;&lt; &quot;Menuepunkt: &quot;;
    std::cin &gt;&gt; start;			// soll einfach zwischen menüpunkt 1 oder 2 wählen

    if (start == 1)
    std::cout &lt;&lt; &quot;Login: \n&quot;; 
    login();			// hier soll es zur login funktion gehen aber wenn er da...
				// ankommt schließt das programm automatisch da liegt mein problem

    if (start == 2)		
    {
    std::cout &lt;&lt; &quot;\nBye!\n\n&quot;;
    system(&quot;pause&quot;);  
    }     

}    
void login() 
{
    std::cout &lt;&lt; &quot;Benutzername: &quot;;        //Die Zeile wird noch angezeigt danach  
                                         // springt es jedoch direkt zu Zeile 92 
    std::getline(std::cin, eingname);

    if (eingname == FIRSTACC)
    {
        mompin = FIRSTPW;
        std::cout &lt;&lt; &quot;Benutzername OK!\n&quot;;
        std::cout &lt;&lt; &quot;\nPIN: &quot;;
        std::getline(std::cin, eingpin);

            if (eingpin == mompin)
            {
                        std::cout &lt;&lt; &quot;PIN OK!\n&quot;;
                        std::cout &lt;&lt; &quot;\nLogin OK!\n\n&quot;;           
            }             
                         else
                         std::cout &lt;&lt; &quot;\nPIN Falsch!\n\n&quot;;          
    }

    if (eingname == SECONDACC)
    {
        mompin = SECONDPW;
        std::cout &lt;&lt; &quot;Benutzername OK!\n&quot;;
        std::cout &lt;&lt; &quot;\nPIN: &quot;;
        std::getline(std::cin, eingpin);

            if (eingpin == mompin)
            {
                        std::cout &lt;&lt; &quot;PIN OK!\n&quot;;
                        std::cout &lt;&lt; &quot;\nLogin OK!\n\n&quot;;
            }             
                         else
                         std::cout &lt;&lt; &quot;\nPIN Falsch!\n\n&quot;; 

    }

    if (eingname == THIRDACC)
    {
        mompin = THIRDPW;
        std::cout &lt;&lt; &quot;Benutzername OK!\n&quot;;
        std::cout &lt;&lt; &quot;\nPIN: &quot;;
        std::getline(std::cin, eingpin);

            if (eingpin == mompin)
            {
                        std::cout &lt;&lt; &quot;PIN OK!\n&quot;;
                        std::cout &lt;&lt; &quot;\nLogin OK!\n\n&quot;;
            }             
                         else
                         std::cout &lt;&lt; &quot;\nPIN Falsch!\n\n&quot;; 

    }

    if ( (eingname != FIRSTACC) &amp; (eingname != SECONDACC) &amp; (eingname != THIRDACC) )
    std::cout &lt;&lt; &quot;\nDieser Benutzername existiert nicht in der Datenbank!\n\n&quot;;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237792</guid><dc:creator><![CDATA[*DooM*]]></dc:creator><pubDate>Thu, 01 Mar 2007 22:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Thu, 01 Mar 2007 23:47:15 GMT]]></title><description><![CDATA[<p>geht auch mit get()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237804</guid><dc:creator><![CDATA[Stelfer]]></dc:creator><pubDate>Thu, 01 Mar 2007 23:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Fri, 02 Mar 2007 07:16:12 GMT]]></title><description><![CDATA[<p>Nach der Eingabe <code>cin&gt;&gt;start;</code> im Hauptprogramm bleibt noch das ENTER-Zeichen im Tastaturpuffer zurück, das dann vom getline() eingelesen wird - im Ergebnis landet in 'eingname' ein leerer String, der dannn atürlich mit keinem der Accounts übereinstimmt. Dieses Zeilenende mußt du per ignore() entsorgen.</p>
<p>btw, diese Code-Duplikation ist grauenhaft - wenn du weitere Nutzer anlegst, blickst du bald gar nicht mehr durch. Pack lieber alle Nutzerdaten in eine map&lt;&gt; und schreib den Login-Vorgang nur einmal:</p>
<pre><code class="language-cpp">map&lt;string,string&gt; accounts;

void init()//einmal am Anfang der main() aufrufen
{
  accounts.insert(make_pair(&quot;Peter Mauer&quot;,&quot;12345&quot;);
  ...
  //Eventuell kannst du die User-Daten auch in eine externe Datei packen und über fstream einlesen
}

bool login()
{
  string user,pw;
  cout&lt;&lt;&quot;Username:&quot;;
  getline(cin,user);
  map&lt;string,string&gt;::iterator pos=accounts.find(user);
  if(pos!=accounts.end())
  {
    cout&lt;&lt;&quot;Passwort:&quot;;
    getline(cin,pw);
    if(pw==pos-&gt;second)
    {
      cout&lt;&lt;&quot;Login erfolgreich&quot;&lt;&lt;endl;
      return true;
    }
    else
    {
      cout&lt;&lt;&quot;falsches Passwort&quot;&lt;&lt;endl;
      return false;
    }
  }
  else
  {
    cout&lt;&lt;&quot;unbekannter Nutzer&quot;&lt;&lt;endl;
    return false;
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237848</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Mar 2007 07:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Fri, 02 Mar 2007 07:37:53 GMT]]></title><description><![CDATA[<p>wow super danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237853</guid><dc:creator><![CDATA[*DooM*]]></dc:creator><pubDate>Fri, 02 Mar 2007 07:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to Leertaste in einer String Variable on Fri, 02 Mar 2007 11:23:01 GMT]]></title><description><![CDATA[<p>Nur mal so nebenbei:</p>
<pre><code class="language-cpp">if ( (eingname != FIRSTACC) &amp; (eingname != SECONDACC) &amp; (eingname != THIRDACC) )
</code></pre>
<p>Statt &amp; schreibt man an dieser Stelle &amp;&amp;. &amp;&amp; ist ein logisches &quot;Und&quot;, wie man es in menschlicher Denkweise tatsächlich verwendet: &quot;Wenn eingname ungleich FIRSTACC und eingname ungleich SECONDACC und eingname ungleich THIRDACC&quot;. Während &amp; ein bitweises &quot;Und&quot; ist, das eigentlich nur bei binären Verknüpfungen von Zahlen genommen wird.</p>
<p>Ein praktisches Beispiel, wo die Unterschiedlichkeit hervorkommt: Es gilt:</p>
<pre><code>9 &amp;&amp; 10 == true == 1
</code></pre>
<p>(alle Werte ungleich Null werden als true angesehen und true &amp;&amp; true == true)<br />
und es gilt:</p>
<pre><code>9 &amp; 10 == 8
</code></pre>
<p>denn hier wird Bit für Bit berechnet:</p>
<pre><code>1001 (binär, entspricht  9)
&amp;1010 (binär, entspricht 10)
-----
=1000 (binär, entspricht  8)
</code></pre>
<p>Hätte man zum Beispiel die Abfrage</p>
<pre><code class="language-cpp">if (1 &amp;&amp; 2)
</code></pre>
<p>würde es einen gewaltigen Unterschied machen, ob man &amp;&amp; oder &amp; schreibt, denn</p>
<pre><code>1 &amp;&amp; 2 == true
</code></pre>
<p>da 1==true und 2==true und true&amp;&amp;true==true.</p>
<p>Aber</p>
<pre><code>1 &amp; 2 == 0 == false
</code></pre>
<p>denn</p>
<pre><code>0001
&amp;0010
-----
=0000
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237977</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Fri, 02 Mar 2007 11:23:01 GMT</pubDate></item></channel></rss>