<?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[String mag Leerzeichen nicht]]></title><description><![CDATA[<p>Hiho bin neu hier,</p>
<p>Wenn es der falsche Bereich sein soll tuts mir leid.</p>
<p>Also ich arbeite derzeit mit dem Buch &quot;C++ Lernen und professionell anwenden&quot;, und bin gerade im Kapitel wo strings behandelt werden.<br />
Da ist ( so ungefähr - Ich schreib das nie genau ab ) dieser Quelltext angegeben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int main()
{
    string text,ende;
    cout &lt;&lt; &quot;Text: &quot;;
    cin &gt;&gt; text;
    cout &lt;&lt; &quot;Ihr Text ist &quot; &lt;&lt; text.size() &lt;&lt; &quot; Zeichen lang!&quot;;
    cin &gt;&gt; ende;
}
</code></pre>
<p>Wenn ich jetzt einen string eingebe der ein Leerzeichen enthält stürzt das Programm einfach ab. Das ist doch sicherlich nicht normal?<br />
Also wenn der string text ein Leerzeichen enthält wird nichts mehr ausgegeben und das Fenster schließt sich einfach.</p>
<p>btw: Ich arbeite mit der IDE und dem Compiler von <a href="http://bloodshed.net" rel="nofollow">bloodshed.net</a>, Dev-C++ Version 4.9.9.2</p>
<p>edit: Ahh Danke T0bi. Ich seh gerade das das auch so im Buch steht... vielleicht sollte ich doch etwas genauer lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179616/string-mag-leerzeichen-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 07:00:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179616.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Apr 2007 19:04:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Mon, 23 Apr 2007 19:17:10 GMT]]></title><description><![CDATA[<p>Hiho bin neu hier,</p>
<p>Wenn es der falsche Bereich sein soll tuts mir leid.</p>
<p>Also ich arbeite derzeit mit dem Buch &quot;C++ Lernen und professionell anwenden&quot;, und bin gerade im Kapitel wo strings behandelt werden.<br />
Da ist ( so ungefähr - Ich schreib das nie genau ab ) dieser Quelltext angegeben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int main()
{
    string text,ende;
    cout &lt;&lt; &quot;Text: &quot;;
    cin &gt;&gt; text;
    cout &lt;&lt; &quot;Ihr Text ist &quot; &lt;&lt; text.size() &lt;&lt; &quot; Zeichen lang!&quot;;
    cin &gt;&gt; ende;
}
</code></pre>
<p>Wenn ich jetzt einen string eingebe der ein Leerzeichen enthält stürzt das Programm einfach ab. Das ist doch sicherlich nicht normal?<br />
Also wenn der string text ein Leerzeichen enthält wird nichts mehr ausgegeben und das Fenster schließt sich einfach.</p>
<p>btw: Ich arbeite mit der IDE und dem Compiler von <a href="http://bloodshed.net" rel="nofollow">bloodshed.net</a>, Dev-C++ Version 4.9.9.2</p>
<p>edit: Ahh Danke T0bi. Ich seh gerade das das auch so im Buch steht... vielleicht sollte ich doch etwas genauer lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271977</guid><dc:creator><![CDATA[Nozdrum]]></dc:creator><pubDate>Mon, 23 Apr 2007 19:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Mon, 23 Apr 2007 19:16:16 GMT]]></title><description><![CDATA[<p>versuchs mal mit getline()...</p>
<pre><code class="language-cpp">string text;
int strLen = 0;

getline( cin, text ); // liesst eine komplette zeile ein auch ' '.

// willst du ausgeben wie lang ein string ist musst du erst seine length
// ermitteln mit strlen(), mit size() wirds nichts das koennte auch den
// absturtz verursachen

strLen = strlen( text );

cout &lt;&lt; &quot;Die string laenge von text ist: &quot; &lt;&lt; strLen &lt;&lt; endl;
</code></pre>
<p>so fertig.<br />
natürlich solltest du vor return 0 also bevor das prog sich beendet getchar() auf rufen, dies wartet auf eine beliebige tasteneingabe und fährt erst dann fort. ( nummer 2 heute xD )</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271981</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 23 Apr 2007 19:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Mon, 23 Apr 2007 19:36:34 GMT]]></title><description><![CDATA[<p>Danke T0bi. Es lag am &quot;cin &gt;&gt; text&quot; im Buch steht ja auch getline(cin,text) *dumm*.<br />
Ach und Danke für den getchar() Befehl, irgendwann hab ich mir ausgetüftelt das ich kurz vor Ende einfach immer die Variable Ende deklariere und Sie danach eingeben lasse. Ist schon komisch das sowas in einem 30€ Buch nicht erwähnt wird.</p>
<p>Aber:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Textlänge: &quot; &lt;&lt; text.size();
</code></pre>
<p>hat keine Probleme verursacht. Wieso soll das so schlecht sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271986</guid><dc:creator><![CDATA[Nozdrum]]></dc:creator><pubDate>Mon, 23 Apr 2007 19:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Mon, 23 Apr 2007 20:26:12 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>// willst du ausgeben wie lang ein string ist musst du erst seine length<br />
// ermitteln mit strlen(), mit size() wirds nichts das koennte auch den<br />
// absturtz verursachen<br />
strLen = strlen( text );[/cpp]</p>
</blockquote>
<p>Oha! Das ist ja mal die Weißheit des Tages.<br />
Die Klasse std::string hat eine Funktion lenght ... und die macht so ziemlich das selbe wie ihre size-Funktion!</p>
<p>Bekanntlich ist Halbwissen etwas schreckliches und nicht alles was du irgendwo auffängst entspricht auch nur annähernd der Wahrheit. Also bitte ich dich dein Halbwissen auch nicht für noch unerfahrenere Leute preis zugeben, sondern es erst von jemand anderen, der nicht nur Halbwissen hat, überprüfen zu lassen.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

int main()
{
    std::cout &lt;&lt; &quot;Benutzername: &quot; &lt;&lt; std::flush;
    std::string user_name;
    std::getline(std::cin, user_name);
    std::cout &lt;&lt; &quot;Ihr Benutzername ist &quot; &lt;&lt; user_name.length() &lt;&lt; &quot; Zeichen lang!&quot; &lt;&lt; std::endl;
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272016</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 23 Apr 2007 20:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Mon, 23 Apr 2007 20:27:48 GMT]]></title><description><![CDATA[<p>ja chef <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 />
*no body is perfect*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272017</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 23 Apr 2007 20:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to String mag Leerzeichen nicht on Tue, 24 Apr 2007 06:43:13 GMT]]></title><description><![CDATA[<p>Nozdrum schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int main()
{
    string text,ende;
    cout &lt;&lt; &quot;Text: &quot;;
    cin &gt;&gt; text;
    cout &lt;&lt; &quot;Ihr Text ist &quot; &lt;&lt; text.size() &lt;&lt; &quot; Zeichen lang!&quot;;
    cin &gt;&gt; ende;
}
</code></pre>
<p>Wenn ich jetzt einen string eingebe der ein Leerzeichen enthält stürzt das Programm einfach ab....</p>
</blockquote>
<p>Glaub' ich nicht <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 />
&quot;Absturz&quot; bedeutet, dass das Programm abnormal beendet wird (oft durch das Betriebssystem). Das obige Programm läuft aber ganz normal durch.</p>
<p>Was Du vermutlich nicht weißt: &quot;cin &gt;&gt; (stringvariable)&quot; liest nur bis zum ersten Leerzeichen und hält dann die Eingabe für beendet und das Programm wird weiter ausgeführt.<br />
Spielen wir das mal mit &quot;Hallo Welt!&quot; durch:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int main()
{
    string text,ende;
    cout &lt;&lt; &quot;Text: &quot;;
    cin &gt;&gt; text; // Wartet auf Deine Eingabe, liest bis zum ersten Leerzeichen
    // Hier hat text den Inhalt &quot;Hallo&quot;
    cout &lt;&lt; &quot;Ihr Text ist &quot; &lt;&lt; text.size() &lt;&lt; &quot; Zeichen lang!&quot;;
    // Diese Ausgabe wird noch kurz auf den Bildschirm geworfen und sofort geht's weiter mit:
    cin &gt;&gt; ende; // Wartet auf Eingabe - hups, ist ja schon da: &quot;Welt!&quot;
    // ende hat den Inhalt &quot;Welt!&quot;
}  // Oh, Programmende -&gt; Fenster schließen
</code></pre>
<p>Wahrscheinlich geht das Ganze so fix, dass Du das, was nach Deiner Eingabe kommt, nicht mehr mitbekommst.</p>
<p>&quot;Es passiert hier nichts Unkontrollierteres&quot; (&quot;Die Sieger&quot;) <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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1272147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1272147</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 24 Apr 2007 06:43:13 GMT</pubDate></item></channel></rss>