<?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[Einzelnes Zeichen auf Konsole löschen]]></title><description><![CDATA[<p>Hallo wer weiss ich ein einzelnes Zeichen von der Konsole löschen kann ?</p>
<p>Es soll nur dieses Zeichne gelöscht werden:</p>
<p>&quot;\x1 &quot;;</p>
<p>Wenn ich z.b. eine Taste drücke so wie ich es jetzt mache wird ja immer die ganze Konsole gelöscht und somit auch mein Level denn ich am Programm Anfang Zeichne.</p>
<pre><code class="language-cpp">if (eingabe == key_left)
                {

                         clrscr();
                         px = px - 1;
                         cursor_pos( px  , py);
                         cout&lt;&lt;&quot;\x1 &quot;;
                }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/237889/einzelnes-zeichen-auf-konsole-löschen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 05:14:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237889.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Apr 2009 10:15:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:15:33 GMT]]></title><description><![CDATA[<p>Hallo wer weiss ich ein einzelnes Zeichen von der Konsole löschen kann ?</p>
<p>Es soll nur dieses Zeichne gelöscht werden:</p>
<p>&quot;\x1 &quot;;</p>
<p>Wenn ich z.b. eine Taste drücke so wie ich es jetzt mache wird ja immer die ganze Konsole gelöscht und somit auch mein Level denn ich am Programm Anfang Zeichne.</p>
<pre><code class="language-cpp">if (eingabe == key_left)
                {

                         clrscr();
                         px = px - 1;
                         cursor_pos( px  , py);
                         cout&lt;&lt;&quot;\x1 &quot;;
                }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690322</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:26:30 GMT]]></title><description><![CDATA[<p>Da du die Position in <em>px</em> gespeichert hast, weisst du also wo deine Figur ist. Wenn du jetzt die Figur an dieser Stelle löschen willst, würde ich sagen, springst du an diese Koordinaten und schreibst ein &quot; &quot;, ein Leerzeichen also.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690330</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:39:58 GMT]]></title><description><![CDATA[<p>Nach Links und Rechts funtkioniert es.</p>
<p>Aber wieso jetzt nicht nach unten ?</p>
<p>Immer wenn ich die Taste nach unten drücke malt der die Figur immer wieder.</p>
<p>Das sieht dann so aus:</p>
<p>O<br />
O<br />
O<br />
O</p>
<p>Was mach ich da falsch ?</p>
<pre><code class="language-cpp">while(1)
        {

        eingabe = getch();

                if (eingabe == key_left)
                {

                      px = px - 1;
                      cursor_pos( px  , py);

                      cout&lt;&lt;&quot; &quot;;

                      cout&lt;&lt;figur;

                }

                if (eingabe == key_right)
                {
                      px = px + 1;
                      cursor_pos( px  , py);

                      cout&lt;&lt;&quot; &quot;;
                      cout&lt;&lt;figur;

                }

                if (eingabe == key_down)
                {

                         py = py + 1;

                         cursor_pos( px  , py);

                         cout&lt;&lt;&quot; &quot;;
                         cout&lt;&lt; figur;

                }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690336</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:45:10 GMT]]></title><description><![CDATA[<p>Kannste mir bitte mal den ganzen Code geben, dann frickel ich eben ein bisschen dran rum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690340</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:45:14 GMT]]></title><description><![CDATA[<p>Du musst das Leerzeichen schon ausgeben, BEVOR du die Position veränderst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690341</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 10:47:40 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Kannste mir bitte mal den ganzen Code geben, dann frickel ich eben ein bisschen dran rum.</p>
</blockquote>
<p>Aber versau den Lerneffekt nicht ganz. <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="😉"
    /></p>
<p>EDIT: Ok, nochmal genau erklärt: Wenn sich die Position deiner Figur ändert, wills du die alte Position löschen. Dazu nimmst du die alten, also aktuellen Koordination, setzt den Cursor dahin und schreibst ein Leerzeichen. Danach kannst du dann wie gehabt Position setzen und Figürchen schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690345</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 10:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:05:06 GMT]]></title><description><![CDATA[<p>Jetzt geb ich es aus bevor sich etwas verändert.</p>
<p>Aber es funktioniert nicht <sub>_</sub></p>
<pre><code class="language-cpp">if (eingabe == key_down)
                {

                    cout&lt;&lt;&quot; &quot;;

                         py = py + 1;
                         cursor_pos( px  , py);
                         cout&lt;&lt; figur;

                }
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19847">@FreakY</a></p>
<p>Der Komplette Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio&gt;
#include &lt;windows&gt;

#define key_left 97
#define key_right 100
#define key_up 119
#define key_down 115

using namespace std;

void cursor_pos(int pos_x , int pos_y);

int main()
{
int eingabe;
int px = 10;
int py = 10;

string figur = &quot;\x1 &quot;;

cursor_pos( px  , py);
cout&lt;&lt; figur;

        while(1)
        {

        eingabe = getch();

                if (eingabe == key_left)
                {

                      px = px - 1;
                      cursor_pos( px  , py);

                      cout&lt;&lt;&quot; &quot;;

                      cout&lt;&lt;figur;

                }

                if (eingabe == key_right)
                {
                      px = px + 1;
                      cursor_pos( px  , py);

                         cout&lt;&lt;&quot; &quot;;
                      cout&lt;&lt;figur;

                }

                if (eingabe == key_down)
                {

                         py = py + 1;

                         cursor_pos( px  , py);

                         cout&lt;&lt; figur;

                }

        }

}

        void cursor_pos(int pos_x , int pos_y)
        {

                COORD topLeft={pos_x,pos_y};
                HANDLE fenster;

                fenster = GetStdHandle( STD_OUTPUT_HANDLE );
                SetConsoleCursorPosition(fenster,topLeft);

        }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690351</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:05:06 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:12:53 GMT]]></title><description><![CDATA[<p>Musst du nicht noch cursor_pos ausführen, bevor du das Leerzeichen ausgibst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690356</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:22:31 GMT]]></title><description><![CDATA[<p>Funktioniert:</p>
<p>So meinst du ?</p>
<pre><code class="language-cpp">if (eingabe == key_down)
                {

                         py = py + 1;

                         cursor_pos( px  , py);

                         cout&lt;&lt;&quot; &quot;;
                         cout&lt;&lt; figur;

                }
</code></pre>
<p>Funktioniert aber auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690364</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:26:50 GMT]]></title><description><![CDATA[<p>konsole schrieb:</p>
<blockquote>
<p>Funktioniert:</p>
<p>...</p>
<p>Funktioniert aber auch nicht.</p>
</blockquote>
<p>Ähm, ok... <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>Nee, ich meine natürlich so:</p>
<pre><code class="language-cpp">if (eingabe == key_down)
{
  cursor_pos( px  , py);  //Cursor an die alte Stelle setzen (da hast du zuletzt geschrieben)
  cout&lt;&lt;&quot; &quot;;  //Leerzeichen schreiben, also Figur an der alten Position löschen
  py = py + 1;  //JETZT neue Position festlegen
  cursor_pos( px  , py);  //Cursor an die neue Position setzen
  cout&lt;&lt; figur;  //Figur an der neuen Position schreiben
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690365</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:35:57 GMT]]></title><description><![CDATA[<p>Man könnte auch noch eine kleine Zusatzfunktion einführen, die ein Zeichen an eine bestimmte Stelle malt</p>
<pre><code class="language-cpp">void writeChar( int x, int y, char c )
{
    cursor_pos( x, y );
    std::cout &lt;&lt; c;
}
</code></pre>
<p>Und dann eben:</p>
<pre><code class="language-cpp">if ( eingabe == kes_down )
{
    // Alte Position löschen
    writeChar( px, py, ' ' );

    // Position updaten
    ++py;

    // Männchen malen
    writeChar( px, py, figur );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690374</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:42:08 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Man könnte auch noch eine kleine Zusatzfunktion einführen,</p>
</blockquote>
<p>Man könnte an dem Code noch eine ganze Menge machen... <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690381</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:42:51 GMT]]></title><description><![CDATA[<p>matze hat einen guten Ansatz. Wenn man nur gerade runter geht, dann funktioniert es. Drückt man vorher links oder rechts, hakt es noch ein bisschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690383</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:42:51 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 11:47:31 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>matze hat einen guten Ansatz. Wenn man nur gerade runter geht, dann funktioniert es. Drückt man vorher links oder rechts, hakt es noch ein bisschen.</p>
</blockquote>
<p>Ich habe eigentlich gar keinen Ansatz. <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="😉"
    /> Ich habe nur den einen case-Zweig so umgebastelt, wie es einfach logisch ist. Ob das komplette Programm funzt, weiß ich nicht. Mit links und rechts hab ich mich nicht beschäftigt (das sollte er dann aber selbst locker hinkriegen)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690386</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 11:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 12:17:29 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Man könnte an dem Code noch eine ganze Menge machen... <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="😉"
    /></p>
</blockquote>
<p>Hehe, da haste Recht <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>
<blockquote>
<blockquote>
<p>Drückt man vorher links oder rechts, hakt es noch ein bisschen.<br />
Noch ne kleine Funktion:</p>
</blockquote>
</blockquote>
<pre><code class="language-cpp">void updatePosition( int dx, int dy )
{
    // Alte Position löschen
    writeChar( px, py, ' ' );

    // Position updaten
    px += dx;
    py += dy;

    // Männchen malen
    writeChar( px, py, figur );
}

if ( eingabe == key_down )
    updatePosition( 0, +1 ); // x-Position bleibt, y-Richtung plus eins.
else if ( eingabe == ... )
    ...
</code></pre>
<p>edit: Um's ganz deutlich zu machen, ginge natürlich auch <code>updatePosition( +-0, +1 );</code> <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/1690409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690409</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 03 Apr 2009 12:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 13:20:15 GMT]]></title><description><![CDATA[<p>Ich hab das jetzt so gemacht:</p>
<p>Damit bin ich für den Anfang erst mal zu frienden.</p>
<pre><code class="language-cpp">while(1)
        {

        eingabe = getch();

        cout&lt;&lt;&quot; &quot;;

                if (eingabe == key_left)
                {

                      px = px - 1;
                      cursor_pos( px  , py);

                      cout&lt;&lt;figur;
                      cursor_pos( px  , py);

                }

                if (eingabe == key_right)
                {

                      px = px + 1;
                      cursor_pos( px  , py);

                      cout&lt;&lt;figur;
                      cursor_pos( px  , py);

                }

                if (eingabe == key_down)
                {

                         py = py + 1;
                        cursor_pos( px  , py);

                           cout&lt;&lt;figur;
                      cursor_pos( px  , py);

                }

                if (eingabe == key_up)
                {

                        py = py - 1;
                        cursor_pos( px  , py);

                           cout&lt;&lt;figur;
                      cursor_pos( px  , py);

                }

        }
</code></pre>
<p>Hat wer zufällig ein paar Tipps zu Kollisons abfragen?</p>
<p>Wenn die Figur z.b. gegen die Wand läuft soll sie einfach stehen bleiben.</p>
<p>Meine level bau funktion^^</p>
<p>Die Funktion baut einfach einen Kasten^^ ( Dein der ist nich so krum und schief wie bei meiner &quot;Zeichnung&quot; )</p>
<p>&quot;Zeichnung&quot;</p>
<p>oben ____________<br />
seiten_w | seite_w_a |<br />
seiten_w |seiten_wa |<br />
boden _____________</p>
<pre><code class="language-cpp">int level_bauen (char wand, int oben , int seiten_w , int seiten_w_a , int boden)
        {

                        for (int i = 0 ; i &lt; oben ; i++ )
                        {
                        cout &lt;&lt;wand ;
                        }

                        cout &lt;&lt; endl ;

                        for (int i = 0 ; i &lt; seiten_w ; i++ )
                        {
                        cout &lt;&lt; wand &lt;&lt; setw( seiten_w_a ) &lt;&lt;wand&lt;&lt;endl;
                        }

                        for (int i=0 ; i&lt; boden ; i++)
                        {
                             cout &lt;&lt; wand ;
                        }

                        return 0;
        }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1690449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690449</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 13:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 13:49:17 GMT]]></title><description><![CDATA[<p>Das jeweils zweite cursor_pos kannst du dir sparen und es stattdessen einmal vor das Schreiben des Leerzeichens setzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690460</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 03 Apr 2009 13:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen auf Konsole löschen on Fri, 03 Apr 2009 13:52:59 GMT]]></title><description><![CDATA[<p>ok funktioniert ty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690462</guid><dc:creator><![CDATA[konsole]]></dc:creator><pubDate>Fri, 03 Apr 2009 13:52:59 GMT</pubDate></item></channel></rss>