<?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[Sleep reagiert seltsam in Schleife]]></title><description><![CDATA[<pre><code class="language-cpp">int a = 5;
while(a &gt; 0) {
    sleep(1);
    cout &lt;&lt; a &lt;&lt; &quot; &quot;; --a;
}
// Ob sleep vor oder hinter cout steht Spielt keine Rolle, da selbes Verhalten
</code></pre>
<pre><code>Ausgabe wird nach 5 Sekunden angezeigt, aber nicht nacheinander wie man vermuten könnte
5 4 3 2 1
</code></pre>
<pre><code class="language-cpp">int a = 5;
while(a &gt; 0) {
    sleep(1);
    cout &lt;&lt; a &lt;&lt; endl; --a;
}
</code></pre>
<pre><code>Mit endl wird jede Sekunde die abgezählte Zahl angezeigt, leider aber ja in einer neuen Zeile
5
4
3
2
1
</code></pre>
<p>Ich vermute mal das es was mit dem Zeilenende zu tun hat, wahrscheinlich kann 'es' nicht in einer Zeile schreiben. Kann man das verhindern?<br />
Also so wie das erste Beispiel, nur nach jeder Sekunde [sleep(1)], und nicht &quot;alles&quot; nach der abgelaufenen Zeit.</p>
<p>OS : Linux<br />
Compiler : GCC<br />
Anwendung : Konsole</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248907/sleep-reagiert-seltsam-in-schleife</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:38:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248907.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Aug 2009 06:28:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 06:28:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int a = 5;
while(a &gt; 0) {
    sleep(1);
    cout &lt;&lt; a &lt;&lt; &quot; &quot;; --a;
}
// Ob sleep vor oder hinter cout steht Spielt keine Rolle, da selbes Verhalten
</code></pre>
<pre><code>Ausgabe wird nach 5 Sekunden angezeigt, aber nicht nacheinander wie man vermuten könnte
5 4 3 2 1
</code></pre>
<pre><code class="language-cpp">int a = 5;
while(a &gt; 0) {
    sleep(1);
    cout &lt;&lt; a &lt;&lt; endl; --a;
}
</code></pre>
<pre><code>Mit endl wird jede Sekunde die abgezählte Zahl angezeigt, leider aber ja in einer neuen Zeile
5
4
3
2
1
</code></pre>
<p>Ich vermute mal das es was mit dem Zeilenende zu tun hat, wahrscheinlich kann 'es' nicht in einer Zeile schreiben. Kann man das verhindern?<br />
Also so wie das erste Beispiel, nur nach jeder Sekunde [sleep(1)], und nicht &quot;alles&quot; nach der abgelaufenen Zeit.</p>
<p>OS : Linux<br />
Compiler : GCC<br />
Anwendung : Konsole</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769580</guid><dc:creator><![CDATA[SleepWhile]]></dc:creator><pubDate>Mon, 31 Aug 2009 06:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 06:38:01 GMT]]></title><description><![CDATA[<p>Was hat das mit sleep zu tun? Du musst doch eher dafuer sorgen, das der Stream geflushed wird. Das koenntest du ja auch ganz leicht mit einem Debugger ueberpruefen. f'`8k</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox245907" /><label for="checkbox245907"></label></div><a href="http://tggc.tg.funpic.de/index.php?cat=8&amp;page=5" rel="nofollow">Autocogito</a></p>
<p>Gruß, TGGC (<a href="http://www.gamestar.de/index.cfm?pid=819&amp;pk=12279" rel="nofollow">Was Gamestar sagt...</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769582</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 31 Aug 2009 06:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 06:46:57 GMT]]></title><description><![CDATA[<p>Ich kannte das mit dem flush nicht, hab es jetzt gesucht und gefunden.<br />
Funktioniert auch. Man kann mich noch zu leicht ablenken als Anfänger.<br />
Danke.</p>
<p>cout &lt;&lt; ....... &lt;&lt; flush;<br />
oder<br />
cout.flush();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769584</guid><dc:creator><![CDATA[SleepWhile]]></dc:creator><pubDate>Mon, 31 Aug 2009 06:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 09:26:06 GMT]]></title><description><![CDATA[<p>TGGC, was ist loss, bist du krank? Ich meine ... ein hilfreicher Beitrag von dir, das kann ja wohl nicht sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769636</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 31 Aug 2009 09:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 09:44:57 GMT]]></title><description><![CDATA[<p>Was ist das Problem? f'`8k</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox245908" /><label for="checkbox245908"></label></div><a href="http://tggc.tg.funpic.de/index.php?cat=8&amp;page=5" rel="nofollow">Autocogito</a></p>
<p>Gruß, TGGC (<a href="http://www.gamestar.de/index.cfm?pid=819&amp;pk=12279" rel="nofollow">Was Gamestar sagt...</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769645</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 31 Aug 2009 09:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 11:45:48 GMT]]></title><description><![CDATA[<p>Ich glaube, das Problem ist weniger das fehlende <code>std::flush</code> und viel eher die 1 als Parameter für <code>Sleep</code> - <code>Sleep</code> erwartet ms als Parameter. Und mit ner 1 wird es glaube ne Pause von ca. 17ms oder so machen, irgendwo in der MSDN steht die Auflösung von <code>Sleep</code> drin...</p>
<p>Mach einfach mal drei Nullen ran (hinten an die eins ;D) und versuch es noch mal ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769709</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 31 Aug 2009 11:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 11:49:12 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ist nicht sogar für std::cerr garantiert, dass es nicht puffert (mit allen Vor- und Nachteilen) ?<br />
Bei uns können wir jedenfalls damit prüfen, ob unser Problem etwas mit dem Puffern zu tun hat.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769712</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 31 Aug 2009 11:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 11:59:44 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hi,</p>
<p>ist nicht sogar für std::cerr garantiert, dass es nicht puffert (mit allen Vor- und Nachteilen) ?<br />
Bei uns können wir jedenfalls damit prüfen, ob unser Problem etwas mit dem Puffern zu tun hat.</p>
<p>Gruß,</p>
<p>Simon2.</p>
</blockquote>
<p>Japp, imho ist das garantiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769721</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 31 Aug 2009 11:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 12:03:37 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Ich glaube, das Problem ist weniger das fehlende <code>std::flush</code> und viel eher die 1 als Parameter für <code>Sleep</code> - <code>Sleep</code> erwartet ms als Parameter. Und mit ner 1 wird es glaube ne Pause von ca. 17ms oder so machen, irgendwo in der MSDN steht die Auflösung von <code>Sleep</code> drin...</p>
<p>Mach einfach mal drei Nullen ran (hinten an die eins ;D) und versuch es noch mal ^^</p>
<p>bb</p>
</blockquote>
<p>Offensichtlich nicht:</p>
<p>SleepWhile schrieb:</p>
<blockquote>
<p>...Ausgabe wird nach 5 Sekunden angezeigt...</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1769728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769728</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 31 Aug 2009 12:03:37 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 12:07:16 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<p>Ich glaube, das Problem ist weniger das fehlende <code>std::flush</code> und viel eher die 1 als Parameter für <code>Sleep</code> - <code>Sleep</code> erwartet ms als Parameter. Und mit ner 1 wird es glaube ne Pause von ca. 17ms oder so machen, irgendwo in der MSDN steht die Auflösung von <code>Sleep</code> drin...</p>
<p>Mach einfach mal drei Nullen ran (hinten an die eins ;D) und versuch es noch mal ^^</p>
<p>bb</p>
</blockquote>
<p>Offensichtlich nicht:</p>
<p>SleepWhile schrieb:</p>
<blockquote>
<p>...Ausgabe wird nach 5 Sekunden angezeigt...</p>
</blockquote>
</blockquote>
<p>oh - sry.<br />
Da stand ja was vonwegen Linux, da stimmt das mit den ms natürlich auch nicht, weil dort Sekunden angegeben werden müssen so weit ich weiß^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769734</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 31 Aug 2009 12:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 16:24:50 GMT]]></title><description><![CDATA[<p>Naja.<br />
Sleep nimmt Millisekunden, sleep dagegen nimmt Sekunden.<br />
So oder so ähnlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769898</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 31 Aug 2009 16:24:50 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 17:41:51 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Naja.<br />
Sleep nimmt Millisekunden, sleep dagegen nimmt Sekunden.<br />
So oder so ähnlich.</p>
</blockquote>
<p>Genau so, in der Unix-welt gibt es dann glaube ich noch usleep^^</p>
<p>so in etwa:</p>
<pre><code class="language-cpp">void Sleep(unsigned long milliseconds)
{
#	if defined(_WIN32) || defined(_WIN64)
		::Sleep(milliseconds);
#	else
		::sleep(milliseconds / 1000);
		::usleep(milliseconds % 1000);
#	endif
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769950</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 31 Aug 2009 17:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 19:32:33 GMT]]></title><description><![CDATA[<p><code>::usleep(milliseconds % 1000);</code> -&gt; <code>::usleep((milliseconds % 1000) * 1000);</code><br />
oder so <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1770008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770008</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 31 Aug 2009 19:32:33 GMT</pubDate></item><item><title><![CDATA[Reply to Sleep reagiert seltsam in Schleife on Mon, 31 Aug 2009 21:41:08 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><code>::usleep(milliseconds % 1000);</code> -&gt; <code>::usleep((milliseconds % 1000) * 1000);</code><br />
oder so <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>
<p>das hört sich für mich gerad falsch an<br />
ich hab das so verstanden:<br />
sleep nimmt die sekunden(also <code>(unsigned long)millisekunden/1000</code> ) und dann usleep die millisekunden( <code>(unsigned long)millisekunden%1000</code> ).<br />
da millisekunden schon ein <code>unsigned long</code> ist, können wir uns den cast hier schenken:<br />
<code>::sleep(millisekunden/1000);</code> - sekunden sind weg, bleiben noch die millisekunden:<br />
<code>::usleep(millisekunden%1000);</code> - millisekunden werden hier &quot;abgearbeitet&quot;</p>
<p>oder hab ich das falsch verstanden?<br />
iwo hatte ich auch ma nen grund gelesen, warum man nicht einfach nur usleep aufrufen sollte, aber die url hab ich leider nich mehr gefunden - bzw. nur keinen nerv, die zu suchen ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770064</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 31 Aug 2009 21:41:08 GMT</pubDate></item></channel></rss>