<?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 Eingabe richtig stückeln]]></title><description><![CDATA[<p>Ich schreibe grade ein Programm um Zahlen per Befehl in eine sortierte Liste einzufügen.<br />
Sprich man muss Zahlen nach folgendem Format eingeben: &quot;i3i5i7d3d5d7&quot; (i=insert,d=delete)</p>
<p>und dann wird die Eingabe einzeln in die Liste Schrittfür Schritt eingelesen.</p>
<p>Funktioniert bisher alles, jedoch nur, wenn ich bei der Eingabe immer ein Leerzeichen zwischen den Befehlen eingebe. &quot;i3 i5 i7&quot; etc, funktionieren soll es aber (und war auch meine Intention, keine Ahnung warum das so reagiert) als einzelner, zusammenhängender Befehl.</p>
<pre><code>/********Liest die Integerzahl aus dem Eingabestring aus**********/
int int_auslesen(string eing){
    int ausg = 0;
    eing.erase(0,1);                 //Löscht den Buchstaben &quot;e23&quot; -&gt; &quot;23&quot;
    stringstream convert(eing);
    convert &gt;&gt; ausg;
    if (!eing[0]){ausgabe();}
    return ausg;
}
</code></pre>
<p>Sortiert wird bei der Ausgabe, da jeder Schritt einzeln abgebildet werden soll.</p>
<p>Falls wem ins Auge fällt, warum dies so ist, bitte drauf Aufmerksam machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Edit: comments</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/334901/string-eingabe-richtig-stückeln</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 02:30:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334901.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Oct 2015 09:30:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String Eingabe richtig stückeln on Mon, 19 Oct 2015 09:43:54 GMT]]></title><description><![CDATA[<p>Ich schreibe grade ein Programm um Zahlen per Befehl in eine sortierte Liste einzufügen.<br />
Sprich man muss Zahlen nach folgendem Format eingeben: &quot;i3i5i7d3d5d7&quot; (i=insert,d=delete)</p>
<p>und dann wird die Eingabe einzeln in die Liste Schrittfür Schritt eingelesen.</p>
<p>Funktioniert bisher alles, jedoch nur, wenn ich bei der Eingabe immer ein Leerzeichen zwischen den Befehlen eingebe. &quot;i3 i5 i7&quot; etc, funktionieren soll es aber (und war auch meine Intention, keine Ahnung warum das so reagiert) als einzelner, zusammenhängender Befehl.</p>
<pre><code>/********Liest die Integerzahl aus dem Eingabestring aus**********/
int int_auslesen(string eing){
    int ausg = 0;
    eing.erase(0,1);                 //Löscht den Buchstaben &quot;e23&quot; -&gt; &quot;23&quot;
    stringstream convert(eing);
    convert &gt;&gt; ausg;
    if (!eing[0]){ausgabe();}
    return ausg;
}
</code></pre>
<p>Sortiert wird bei der Ausgabe, da jeder Schritt einzeln abgebildet werden soll.</p>
<p>Falls wem ins Auge fällt, warum dies so ist, bitte drauf Aufmerksam machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Edit: comments</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2471583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2471583</guid><dc:creator><![CDATA[bonzei]]></dc:creator><pubDate>Mon, 19 Oct 2015 09:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to String Eingabe richtig stückeln on Mon, 19 Oct 2015 13:09:09 GMT]]></title><description><![CDATA[<p>Hallo bonzei,</p>
<p>der Code, den Du gepostet hast, hat nichts mit der Trennung der einzelnen 'Befehle' zu tun, wo Du Dein Problem vermutest. Er beseitigt lediglich das erste Zeichen am Anfang und konvertiert den Rest in eine Zahl.</p>
<p>Ich vermute, Du liest diese Befehle mit einem String von einem std::istream (cin oder ifstream). Dann besteht Dein erster Fehler bereits darin, dass Du überhaupt strings benutzt. Einfacher wäre es Du liest Character ('i' bzw. 'd') und Zahlen und verarbeitest diese gleich. In etwa so:</p>
<pre><code>#include &lt;algorithm&gt;
#include &lt;list&gt;
#include &lt;iostream&gt;

int main()
{
    using namespace std;

    list&lt; int &gt; zahlen;
    bool ende = false;
    for( char cmd; cin &gt;&gt; cmd; )
    {
        int zahl;
        switch( cmd )
        {
        case 'i':   // insert
            if( cin &gt;&gt; zahl )
                zahlen.push_back( zahl );
            break;
        case 'd':   // delete
            if( cin &gt;&gt; zahl )
                zahlen.remove( zahl );
            break;
        default:
            ende = true;
            break;
        }
        if( ende )
            break;
        cout &lt;&lt; &quot;Liste: &quot;;
        for( auto z: zahlen )
            cout &lt;&lt; z &lt;&lt; &quot; &quot;;
        cout &lt;&lt; endl;
    }
}
</code></pre>
<p>dann ist es auch egal, ob noch Leerzeichen oder Tabulatoren dazwischen stehen oder nicht.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2471617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2471617</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 19 Oct 2015 13:09:09 GMT</pubDate></item></channel></rss>