<?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[ausgabe innerhalb einer schleife]]></title><description><![CDATA[<p>mit diesem kleinen programm moechte ich eigentlich nichts anderes als meine eingabe unterhalb der eingabezeile einfach nocheinmal ausgegeben wird.<br />
das problem ist, das macht es nicht.<br />
innerhalb der schleife erfolgt keine ausgabe der funktion printscreen().<br />
erst wenn die schleife beendet wurde erfolgt die richtige ausgabe.</p>
<p>und meine frage jetzt warum, was mach ich falsch?</p>
<pre><code class="language-cpp">#include &quot;ncurses.h&quot;
#include &lt;iostream&gt;
using namespace std;

char atmp[30];
void clearscreen();
void initscreen();
void printscreen();
int main(){
    char a;   
    int i = 0;   

do{   
    clearscreen();       
    cout &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; atmp;
    initscreen();   
    a = getch();                   
    endwin();       
        atmp[i] = a;       
    i++;       
}while(i &lt; 10);
clearscreen();
cout &lt;&lt; &quot;===ende===&quot; &lt;&lt; endl;
printscreen();   
cout &lt;&lt; &quot;==========&quot; &lt;&lt; endl;

return 0;
}

void printscreen(){           
    printf(&quot;%s&quot;,atmp);   
    cout &lt;&lt; endl;
    return;
}

void initscreen(){
    initscr();
    cbreak();
    noecho();
    nonl();
    keypad(stdscr,TRUE);
    return;
}
void clearscreen(){
    cout &lt;&lt; &quot;\033[2J\n\n&quot;;
    return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/125608/ausgabe-innerhalb-einer-schleife</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 03:26:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/125608.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Nov 2005 22:21:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Mon, 07 Nov 2005 22:21:45 GMT]]></title><description><![CDATA[<p>mit diesem kleinen programm moechte ich eigentlich nichts anderes als meine eingabe unterhalb der eingabezeile einfach nocheinmal ausgegeben wird.<br />
das problem ist, das macht es nicht.<br />
innerhalb der schleife erfolgt keine ausgabe der funktion printscreen().<br />
erst wenn die schleife beendet wurde erfolgt die richtige ausgabe.</p>
<p>und meine frage jetzt warum, was mach ich falsch?</p>
<pre><code class="language-cpp">#include &quot;ncurses.h&quot;
#include &lt;iostream&gt;
using namespace std;

char atmp[30];
void clearscreen();
void initscreen();
void printscreen();
int main(){
    char a;   
    int i = 0;   

do{   
    clearscreen();       
    cout &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; atmp;
    initscreen();   
    a = getch();                   
    endwin();       
        atmp[i] = a;       
    i++;       
}while(i &lt; 10);
clearscreen();
cout &lt;&lt; &quot;===ende===&quot; &lt;&lt; endl;
printscreen();   
cout &lt;&lt; &quot;==========&quot; &lt;&lt; endl;

return 0;
}

void printscreen(){           
    printf(&quot;%s&quot;,atmp);   
    cout &lt;&lt; endl;
    return;
}

void initscreen(){
    initscr();
    cbreak();
    noecho();
    nonl();
    keypad(stdscr,TRUE);
    return;
}
void clearscreen(){
    cout &lt;&lt; &quot;\033[2J\n\n&quot;;
    return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/911249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911249</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Mon, 07 Nov 2005 22:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 05:07:45 GMT]]></title><description><![CDATA[<p>Stdout ist nicht zeilengepuffert. Sprich es gibt erst dann was auch, wenn der Puffergeleert wird (z.b. wenn einen Eingabe erfolgen soll)<br />
Bei C würde man einfach fflush(stdout) machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911308</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Tue, 08 Nov 2005 05:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 05:48:20 GMT]]></title><description><![CDATA[<p>Du solltest printf und cout nicht mischen. Warum nicht cout &lt;&lt; atmp; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911313</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 08 Nov 2005 05:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 08:57:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2803">@mfk</a>: das ist nur die version mit dem printf...es ist egal ob printf oder cout, hier das ergebnis gleich unsichtbar<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10203">@imhotep</a>:an die bufferung hab ich noch gar nicht gedacht...danke fuer den tip werd es demnaechst gleich mal probieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911457</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Tue, 08 Nov 2005 08:57:51 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 09:15:56 GMT]]></title><description><![CDATA[<p>einer schrieb:</p>
<blockquote>
<p>innerhalb der schleife erfolgt keine ausgabe der funktion printscreen().<br />
...</p>
<p>und meine frage jetzt warum, was mach ich falsch?</p>
</blockquote>
<p>Wenn du innerhalb der Schleife eine Ausgabe willst, mußt du dort auch die printscreen() Funktion aufrufen.</p>
<p>(btw solltest du besser lokale Variablen verwenden und die notfalls als Parameter übergeben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911479</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 08 Nov 2005 09:15:56 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 09:28:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@cstoll</a>: hab ich ja wohl drinnen gehabt, so ist es ja nicht, habs nur hier vergessen mitzuzuschreiben.will es ja auch lieber mit lokalen variablen machen, aber mit einer lokalen variable hat es noch weniger funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911497</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Tue, 08 Nov 2005 09:28:53 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 09:44:48 GMT]]></title><description><![CDATA[<p>Das Problem könnte sein, daß du vor jedem Eingabezeichen clearscreen(); aufrufst und damit die bisherige Eingabe (und auch eventuelle Zwischenausgaben mit printscreen();) wieder löschst.</p>
<blockquote>
<p>will es ja auch lieber mit lokalen variablen machen, aber mit einer lokalen variable hat es noch weniger funktioniert.</p>
</blockquote>
<p>Was genau heißt &quot;hat nicht funktioniert&quot;? Lokale Variablen kannst du nicht direkt von außen anfassen, die müßtest du als Parameter an die printscreen()-Funktion übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911523</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 08 Nov 2005 09:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 10:07:16 GMT]]></title><description><![CDATA[<blockquote>
<p>Das Problem könnte sein, daß du vor jedem Eingabezeichen clearscreen(); aufrufst und damit die bisherige Eingabe (und auch eventuelle Zwischenausgaben mit printscreen();) wieder löschst.</p>
</blockquote>
<p>mmmmh...das glaub ich nicht, da die funktion clearscreen() ab beginn aufgerufen wird und die ausgabe nach dem erfassen des neuen zeichens erfolgt.</p>
<blockquote>
<p>die müßtest du als Parameter an die printscreen()-Funktion übergeben</p>
</blockquote>
<p>das ist mir auch klar, aber die parameter an die funktion zu uebergeben hat die ausgabe insofern ein klein wenig verwirrend gestaltet, als dass sonderzeichen ausgegeben wurden. erst mit der globalen variable hat die ausgabe funktioniert (nicht mit printscreen() innerhalb der schleife, weil das funkt derzeit sowieso nicht ;), sondern bei</p>
<blockquote>
<p>cout &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; atmp;</p>
</blockquote>
<p>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911548</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Tue, 08 Nov 2005 10:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 10:13:12 GMT]]></title><description><![CDATA[<p>Dann zeig doch mal deine Schleife mit dem printscreen()-Aufruf, die nicht so funktionierte, wie sie sollte.</p>
<p>@lokale Variable: In welchem Block hattest du die definiert? Wenn das innerhalb der do-while-Schleife war, wird die Variable bei jedem Durchlauf neu initialisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911561</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 08 Nov 2005 10:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 10:38:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@cstoll</a>: das printscreen() war nach der zuweisung atmp[i] = a drinnen.<br />
und die definition wahr wohl ausserhalb der schleife in der main funktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911606</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Tue, 08 Nov 2005 10:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Tue, 08 Nov 2005 10:47:37 GMT]]></title><description><![CDATA[<p>So etwa?</p>
<pre><code>do{   
    clearscreen();       
    cout &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; atmp; 
    initscreen();   
    a = getch();                   
    endwin();       
    atmp[i] = a;
    printscreen();
    i++;       
}while(i &lt; 10);
</code></pre>
<p>Dann ist es ja kein Wunder - du schreibst etwas und bevor du Zeit hast, es zu lesen, startet ein neuer Schleifendurchlauf und als erstes wird mit clearsreen() der Bildschirm gelöscht. Trag' den printscreen()-Aufruf mal an der Stelle ein, wo du &quot;cout&lt;&lt;&quot;Eingabe:&quot;&lt;&lt;atmp;&quot; stehen hast.</p>
<p>PS: Was genau macht eigentlich endwin();</p>
<p>@lokale Variable: Ohne entsprechenden Code kann ich nicht wirklich nachvollziehen, was du gemacht hast und was da schiefgelaufen sein könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/911615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/911615</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 08 Nov 2005 10:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to ausgabe innerhalb einer schleife on Wed, 09 Nov 2005 07:41:22 GMT]]></title><description><![CDATA[<p>@all: des raetsel loesung ist gefunden<br />
imhotep tip mit dem leeren des puffers ists gewesen kombiniert mit einer leichten abaenderung von cstoll's hinweis zwecks dem aufruf von clearscreen().</p>
<p>danke fuer die hinweise</p>
]]></description><link>https://www.c-plusplus.net/forum/post/912422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/912422</guid><dc:creator><![CDATA[einer]]></dc:creator><pubDate>Wed, 09 Nov 2005 07:41:22 GMT</pubDate></item></channel></rss>