<?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[Pausen zwischen den Buchstaben bei Textausgabe]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich wollte mal fragen ob jemand weiß wie man es schafft die Textausgabe in der Konsole so zu gestalten, dass zwischen den einzelnen Zeichen eines Wortes immer kurz eine Pause ist bevor der nächste Buchstabe kommt.<br />
Bisher habe ich das Problem so wie im Beispiel gelöst aber das ist ja ziemlich umständlich und außerdem kann ich damit zwischen den Zeichen eines eingelesenen Strings keine Pausen rein machen, weil ich den Namen von dem Benutzer der das Programm benutzt nicht kenne...<br />
Hat jemand eine Lösung wie man das Problem angehen kann? Vielleicht gibt es ja eine Funkion für sowas.</p>
<pre><code>#include &lt;iostream&gt; 
#include &lt;windows.h&gt; 
#include &lt;string&gt;
#include &lt;stdlib.h&gt;

int main() 
{ 
	std::string name = &quot;&quot;;

	std::cout &lt;&lt; &quot; &quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot; H&quot;; Sleep(50); std::cout &lt;&lt; &quot;a&quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;o&quot;; 
	Sleep(50); std::cout &lt;&lt; &quot;! &quot;; Sleep(50); std::cout &lt;&lt; &quot;W&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;e &quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;s&quot;; Sleep(50); std::cout &lt;&lt; &quot;s&quot;; Sleep(50); std::cout &lt;&lt; &quot;t&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;D&quot;; Sleep(50); std::cout &lt;&lt; &quot;u&quot;; Sleep(50); std::cout &lt;&lt; &quot;? &quot;; 

	std::cin &gt;&gt; name;
	system(&quot;cls&quot;);
	std::cout &lt;&lt; &quot; &quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot; S&quot;; Sleep(50); std::cout &lt;&lt; &quot;c&quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;; Sleep(50); std::cout &lt;&lt; &quot;\x94&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50);
	std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;d&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;c&quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;k&quot;; Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;z&quot;; Sleep(50); std::cout &lt;&lt; &quot;u&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;r&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; name; Sleep(50); 
	std::cout &lt;&lt; &quot;! &quot; &lt;&lt; &quot;\x1&quot; &lt;&lt; std::endl;

	std::getchar();
	std::getchar();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/326467/pausen-zwischen-den-buchstaben-bei-textausgabe</link><generator>RSS for Node</generator><lastBuildDate>Mon, 25 May 2026 07:45:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326467.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Jun 2014 18:36:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 18:37:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich wollte mal fragen ob jemand weiß wie man es schafft die Textausgabe in der Konsole so zu gestalten, dass zwischen den einzelnen Zeichen eines Wortes immer kurz eine Pause ist bevor der nächste Buchstabe kommt.<br />
Bisher habe ich das Problem so wie im Beispiel gelöst aber das ist ja ziemlich umständlich und außerdem kann ich damit zwischen den Zeichen eines eingelesenen Strings keine Pausen rein machen, weil ich den Namen von dem Benutzer der das Programm benutzt nicht kenne...<br />
Hat jemand eine Lösung wie man das Problem angehen kann? Vielleicht gibt es ja eine Funkion für sowas.</p>
<pre><code>#include &lt;iostream&gt; 
#include &lt;windows.h&gt; 
#include &lt;string&gt;
#include &lt;stdlib.h&gt;

int main() 
{ 
	std::string name = &quot;&quot;;

	std::cout &lt;&lt; &quot; &quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot; H&quot;; Sleep(50); std::cout &lt;&lt; &quot;a&quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;o&quot;; 
	Sleep(50); std::cout &lt;&lt; &quot;! &quot;; Sleep(50); std::cout &lt;&lt; &quot;W&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;e &quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;s&quot;; Sleep(50); std::cout &lt;&lt; &quot;s&quot;; Sleep(50); std::cout &lt;&lt; &quot;t&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;D&quot;; Sleep(50); std::cout &lt;&lt; &quot;u&quot;; Sleep(50); std::cout &lt;&lt; &quot;? &quot;; 

	std::cin &gt;&gt; name;
	system(&quot;cls&quot;);
	std::cout &lt;&lt; &quot; &quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot; S&quot;; Sleep(50); std::cout &lt;&lt; &quot;c&quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;; Sleep(50); std::cout &lt;&lt; &quot;\x94&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50);
	std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;d&quot;; Sleep(50); std::cout &lt;&lt; &quot;i&quot;; Sleep(50); std::cout &lt;&lt; &quot;c&quot;; Sleep(50); std::cout &lt;&lt; &quot;h&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;k&quot;; Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;z&quot;; Sleep(50); std::cout &lt;&lt; &quot;u&quot;;
	Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; &quot;l&quot;; Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;r&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;;
	Sleep(50); std::cout &lt;&lt; &quot;e&quot;; Sleep(50); std::cout &lt;&lt; &quot;n&quot;; Sleep(50); std::cout &lt;&lt; &quot; &quot;; Sleep(50); std::cout &lt;&lt; name; Sleep(50); 
	std::cout &lt;&lt; &quot;! &quot; &lt;&lt; &quot;\x1&quot; &lt;&lt; std::endl;

	std::getchar();
	std::getchar();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2404632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404632</guid><dc:creator><![CDATA[Käffchen187]]></dc:creator><pubDate>Thu, 19 Jun 2014 18:37:09 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 18:52:33 GMT]]></title><description><![CDATA[<pre><code>for (const auto &amp;c : &quot;Wie heissen Sie?&quot;){
    std::cout &lt;&lt; c;
    Sleep(50);
}
for (const auto &amp;c : name){
    std::cout &lt;&lt; c;
    Sleep(50);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2404634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404634</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 19 Jun 2014 18:52:33 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 19:12:05 GMT]]></title><description><![CDATA[<p>#include &lt;string&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;windows.h&gt;</p>
<p>void slowOutput( const std::string&amp; text )<br />
{<br />
for( unsigned count = 0; count &lt; text.length(); ++count ) //ohne c++11 falls du das noch nicht kennst<br />
{<br />
std::cout &lt;&lt; text[ count ];<br />
Sleep(50);<br />
}<br />
}</p>
<p>int main()<br />
{<br />
slowOutput( &quot;hello, world&quot; );<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404638</guid><dc:creator><![CDATA[theconflict]]></dc:creator><pubDate>Thu, 19 Jun 2014 19:12:05 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 19:14:36 GMT]]></title><description><![CDATA[<pre><code>#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

void slowOutput( const std::string&amp; text )
{
    for( unsigned count = 0; count &lt; text.length(); ++count ) //ohne c++11 falls du das noch nicht kennst
    {
        std::cout &lt;&lt; text[ count ];
        Sleep(50);
    }
}

int main()
{
    slowOutput( &quot;hello, world&quot; );
}
</code></pre>
<p>sry <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404639</guid><dc:creator><![CDATA[theconflict]]></dc:creator><pubDate>Thu, 19 Jun 2014 19:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 19:47:40 GMT]]></title><description><![CDATA[<p>Wie man absolut alles erwischt:</p>
<pre><code>#include &lt;streambuf&gt;
#include &lt;ios&gt;    
#include &lt;thread&gt;
#include &lt;chrono&gt;

class seppjs_super_duper_verzoegernder_streambuf : public std::streambuf
{
public:
  seppjs_super_duper_verzoegernder_streambuf(std::ios&amp; in, unsigned milliseconds_delay)
    : in(in)
    , buf (in.rdbuf())
    , delay(milliseconds_delay)
  {
    in.rdbuf(this);
  }
  ~seppjs_super_duper_verzoegernder_streambuf()
  {
    in.rdbuf(buf);
  }

protected:
 virtual int_type overflow(int_type c)
  {
    buf-&gt;sputc(c);
    std::this_thread::sleep_for(delay);
    buf-&gt;pubsync();
    return c;  
  }
private:
  seppjs_super_duper_verzoegernder_streambuf( const seppjs_super_duper_verzoegernder_streambuf&amp; ) = delete;    
  seppjs_super_duper_verzoegernder_streambuf&amp; operator=( const seppjs_super_duper_verzoegernder_streambuf&amp; ) = delete;

  std::ios&amp; in;
  std::streambuf* buf;
  std::chrono::milliseconds delay;
};

#include &lt;iostream&gt;  

int main()
{
  {
    seppjs_super_duper_verzoegernder_streambuf foo(std::cout, 50); 

    std::cout &lt;&lt; &quot;Dies ist ein Text, nun ein paar Zahlen: &quot; &lt;&lt; 123456 &lt;&lt; &quot; &quot; &lt;&lt; std::hex &lt;&lt; 123456 &lt;&lt; &quot; Blahblah\nBlahBlah\n&quot;;
  }
}
</code></pre>
<p>P.S.: Geht natürlich auch ohne C++11 für die Altmodischen. Einfach &quot;= delete&quot; entfernen und den Chrono/Thread-Kram durch ein systemabhängiges sleep ersetzen.</p>
<p>edit2: Ups, da war noch Debugcode drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404640</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 19 Jun 2014 19:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 19:50:52 GMT]]></title><description><![CDATA[<pre><code>#include &lt;chrono&gt;
#include &lt;thread&gt;
#include &lt;iterator&gt;
#include &lt;iostream&gt;

template&lt; typename InputIterator,
          typename OutputIterator,
          typename Rep,
          typename Period &gt;
OutputIterator slowCopy( InputIterator first, InputIterator last,
                         OutputIterator out,
                         std::chrono::duration&lt;Rep, Period&gt; const&amp; sleep_duration )
{
	while( first != last )
	{
		*out++ = *first++;
		std::this_thread::sleep_for( sleep_duration );
	}
	return out;
}

int main()
{
	char const str[] = &quot;Hello World!&quot;;
	slowCopy( std::begin(str), std::end(str),
	          std::ostream_iterator&lt;char&gt;{std::cout &lt;&lt; std::unitbuf},
	          std::chrono::seconds{1} );
}
</code></pre>
<p>Sie nutzt<a href="http://en.cppreference.com/w/cpp/thread/sleep_for" rel="nofollow"> <code>std::this_thread::sleep_for</code> </a>zum Anhalten.<br />
Damit garantiert ist, dass auch wirklich nach jedem Zeichen geflusht wird, muss <code>unitbuf</code> gesetzt werden.</p>
<p>Edit: SeppJ's Lösung ist natürlich viel schöner, Touché. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404641</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 19 Jun 2014 19:50:52 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 20:02:26 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:<br />
Kritik:</p>
<ul>
<li>
<blockquote>
<pre><code></code></pre>
</blockquote>
</li>
</ul>
<blockquote>
<p>virtual int_type overflow(int_type c)<br />
{<br />
buf-&gt;sputc(c);</p>
<pre><code></code></pre>
</blockquote>
<p>Du weißt was zu tun ist.</p>
<ul>
<li>Du solltest prüfen ob <code>rdbuf()</code> nicht 'nen Nullzeiger zurückgibt.</li>
<li>Zeile 24 und 25 sollten vertauscht werden, oder?</li>
<li>Und der Typ des zweiten Konstruktorparameters sollte <code>std::chrono::milliseconds</code> sein.</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/2404643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404643</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 19 Jun 2014 20:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Thu, 19 Jun 2014 20:18:44 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>[*]Du solltest prüfen ob <code>rdbuf()</code> nicht 'nen Nullzeiger zurückgibt.</p>
</blockquote>
<p>Und wenn es einer ist? Mir fällt kein sinnvolles Verhalten ein, außer es, wie jetzt, einfach krachen zu lassen.</p>
<blockquote>
<p>[*]Zeile 24 und 25 sollten vertauscht werden, oder?</p>
</blockquote>
<p>Ja, vertauscht ist es wahrscheinlich schöner.</p>
<blockquote>
<p>Und der Typ des zweiten Konstruktorparameters sollte <code>std::chrono::milliseconds</code> sein.</p>
</blockquote>
<p>Wenn schon, dann richtig:</p>
<pre><code>template&lt;class Rep, class Period&gt; 
  seppjs_super_duper_verzoegernder_streambuf(std::ios&amp; in, std::chrono::duration&lt;Rep, Period&gt; delay)
</code></pre>
<p>Das dumme ist bloß, der Aufruf sieht dann so oder ähnlich aus:</p>
<pre><code>seppjs_super_duper_verzoegernder_streambuf foo(std::cout, std::chrono::seconds(1));
</code></pre>
<p>Und das ist dann nicht mehr im Sinne des Erfinders. Das ist sinnloses Overenginering mit Codebloat als einzigem Effekt. Die sinnvollen Werte sind hier alle im Millisekundenbereich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404644</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 19 Jun 2014 20:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Pausen zwischen den Buchstaben bei Textausgabe on Sun, 22 Jun 2014 09:28:52 GMT]]></title><description><![CDATA[<p>Ehm Sorry Leute, dass ist mir dann doch alles noch ein bisschen zu hoch..<br />
Ich werde meine Frage dass nächste mal besser formulieren und schreiben dass ich ein noob bin <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>Danke aber, LG Käffchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2404998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2404998</guid><dc:creator><![CDATA[Käffchen187]]></dc:creator><pubDate>Sun, 22 Jun 2014 09:28:52 GMT</pubDate></item></channel></rss>