<?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[ESC als Abbruchbedingung ??]]></title><description><![CDATA[<p>Hey,</p>
<p>kann mir jemand sagen wie ich die Escape Taste dazu benutzen kann das ich wären einer Texteingabe abbrechen bzw eingabe beenden kann??</p>
<p>damit ihrs vllt besser versteht maln fast ausreichendes Program...</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;fstream.h&gt;
#include &lt;dos.h&gt;
#include &lt;cstring.h&gt;

int GetKey ()  //liest Tastatureingabe nach jeder Strineingabe und gibt wert der gedrückten taste zurück
{
    int Key = getche();
    if (Key == 0 || Key == 224)
    {
        Key = 256 + getche();
    }
    return Key;
}

void main()
{
	string a[100];
   ofstream ziel;
   int string_anz=0;
   int key = 0;
   char open;

   cout &lt;&lt; &quot;Sie koennen nun beliebig viele Zeilen Text eingeben (max.100)\num die Eingabe zu Beenden [ESC] druecken&quot;&lt;&lt;endl&lt;&lt;endl;

	while (key != 27&amp;&amp;string_anz&lt;100)   // solange nicht Escape gedrückt wurde und die eingegebene stringanzahl nicht größer als 100 ist
    {
        string_anz++;
        getline(cin,a[string_anz]);
        key = GetKey ();
    }

   ziel.open (&quot;c:\\test.txt&quot; , ios::out );     //Ziel datei öffnen

   for (int j=0;j&lt;=string_anz;j++)                           //zählt soweit hoch wieviel Strings eingegeben wurde
   	{ziel &lt;&lt; a [j] &lt;&lt; endl ;}										//Strings in Datei schreiben

	ziel.close();                                           //Datei schliesen

    cout &lt;&lt; endl &lt;&lt; &quot;Ihr Eingabe wurden in c:\\test.txt gespeichert&quot; &lt;&lt; endl &lt;&lt; endl;
    cout &lt;&lt; &quot;Wenn Sie diese Datei jetzt oeffnen moechten drücken Sie bitte [j]&quot;;
    cin &gt;&gt; open;

   if(open == 'j')                                                    //öffnet auf wunsch die geschriebene Datei
   	{
   		system(&quot;c:\\test.txt&quot;);
      }

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

   }
</code></pre>
<p>Erklärung:</p>
<p>das Prgramm liest einen Text in ein Stringarray ein solange kein Escape gedrückt wurde. Dann speichert er den Text in eine Datei und auf Wunsch kann diese Datei geöffnet werden.</p>
<p>Problem bei dem Programm:<br />
Von jedem String der eingegeben wird verschluckt die GetKey Funktion das erste Zeichen...Gibt es zwar in der Konsole aus speichert es jedoch nicht...</p>
<p>Jetzt bräuchte ich eine Funktion die aber genau das macht (eingbae auf ESC überprüfen und alles speichern) bzw mal nen kleinen Denkanstoß wie ich das selber realisieren könnte <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>danke schonmal<br />
grüße manuel</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182414/esc-als-abbruchbedingung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 21:11:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182414.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 May 2007 18:51:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ESC als Abbruchbedingung ?? on Thu, 24 May 2007 18:51:38 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>kann mir jemand sagen wie ich die Escape Taste dazu benutzen kann das ich wären einer Texteingabe abbrechen bzw eingabe beenden kann??</p>
<p>damit ihrs vllt besser versteht maln fast ausreichendes Program...</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;fstream.h&gt;
#include &lt;dos.h&gt;
#include &lt;cstring.h&gt;

int GetKey ()  //liest Tastatureingabe nach jeder Strineingabe und gibt wert der gedrückten taste zurück
{
    int Key = getche();
    if (Key == 0 || Key == 224)
    {
        Key = 256 + getche();
    }
    return Key;
}

void main()
{
	string a[100];
   ofstream ziel;
   int string_anz=0;
   int key = 0;
   char open;

   cout &lt;&lt; &quot;Sie koennen nun beliebig viele Zeilen Text eingeben (max.100)\num die Eingabe zu Beenden [ESC] druecken&quot;&lt;&lt;endl&lt;&lt;endl;

	while (key != 27&amp;&amp;string_anz&lt;100)   // solange nicht Escape gedrückt wurde und die eingegebene stringanzahl nicht größer als 100 ist
    {
        string_anz++;
        getline(cin,a[string_anz]);
        key = GetKey ();
    }

   ziel.open (&quot;c:\\test.txt&quot; , ios::out );     //Ziel datei öffnen

   for (int j=0;j&lt;=string_anz;j++)                           //zählt soweit hoch wieviel Strings eingegeben wurde
   	{ziel &lt;&lt; a [j] &lt;&lt; endl ;}										//Strings in Datei schreiben

	ziel.close();                                           //Datei schliesen

    cout &lt;&lt; endl &lt;&lt; &quot;Ihr Eingabe wurden in c:\\test.txt gespeichert&quot; &lt;&lt; endl &lt;&lt; endl;
    cout &lt;&lt; &quot;Wenn Sie diese Datei jetzt oeffnen moechten drücken Sie bitte [j]&quot;;
    cin &gt;&gt; open;

   if(open == 'j')                                                    //öffnet auf wunsch die geschriebene Datei
   	{
   		system(&quot;c:\\test.txt&quot;);
      }

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

   }
</code></pre>
<p>Erklärung:</p>
<p>das Prgramm liest einen Text in ein Stringarray ein solange kein Escape gedrückt wurde. Dann speichert er den Text in eine Datei und auf Wunsch kann diese Datei geöffnet werden.</p>
<p>Problem bei dem Programm:<br />
Von jedem String der eingegeben wird verschluckt die GetKey Funktion das erste Zeichen...Gibt es zwar in der Konsole aus speichert es jedoch nicht...</p>
<p>Jetzt bräuchte ich eine Funktion die aber genau das macht (eingbae auf ESC überprüfen und alles speichern) bzw mal nen kleinen Denkanstoß wie ich das selber realisieren könnte <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>danke schonmal<br />
grüße manuel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291681</guid><dc:creator><![CDATA[manuel774]]></dc:creator><pubDate>Thu, 24 May 2007 18:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to ESC als Abbruchbedingung ?? on Fri, 25 May 2007 07:29:15 GMT]]></title><description><![CDATA[<p>Erstmal solltest du aus dem string-Array einen vector&lt;string&gt; machen, dann mußt du dich nicht mehr um die Anzahl der Eingaben kümmern.</p>
<p>Zweitens kollidieren anscheinend die Eingaben über getche() und getline() miteinander, also müsstest du das per getche() gelesene Zeichen entweder in den Eingabepuffer zurückschieben (cin.putback()) oder vorne an die eingelesenen Strings anhängen. (oder du schreibst dir eine eigene GetLine() Funktion auf Grundlage deiner GetKey())</p>
<p>PS: So, wie du das geschrieben hast, dürfte die Schleife nur nur abbrechen, wenn ESC direkt nach dem letzten ENTER gedrückt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1291958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1291958</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 25 May 2007 07:29:15 GMT</pubDate></item><item><title><![CDATA[Reply to ESC als Abbruchbedingung ?? on Fri, 25 May 2007 13:41:45 GMT]]></title><description><![CDATA[<p>Danek</p>
<p>Aber wenn ich aus dem String-Array nen vector&lt;string&gt; kann ich die verschiedenen Strings genau wie im Array ansprechen ???</p>
<p>Deklarieren müsste ich den so:</p>
<pre><code class="language-cpp">vector&lt;string&gt; a;
</code></pre>
<p>oder?</p>
<p>wie kann ich die cin.putback(); Funktion benutzen ? Also wo muss die hin und wohin gibt die was zurück ?</p>
<p>bin halt noch son kleiner Anfänger <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>grüße manuel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292254</guid><dc:creator><![CDATA[manuel774]]></dc:creator><pubDate>Fri, 25 May 2007 13:41:45 GMT</pubDate></item></channel></rss>