<?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[Anfängercommands gesucht]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich denke ich habe schon einen Fehler im Titel wegen dem &quot;commands&quot; gemacht.<br />
Nun, ich brauche folgendes:<br />
1.<br />
Eine Eingabe die auf 4 Ziffern beschränkt ist, und die Ziffer darf nur einmal in diesem 4 Ziffercode vorkommen!!</p>
<ol start="2">
<li></li>
</ol>
<p>Der 4stellige code von oben soll in 4 x 2 - stellige Zahlen unterteilt werden!<br />
Die erste Zahl gibt die Zahl an aus dem vierstelligen Code, die zweite die Position.<br />
Bsp:<br />
4298<br />
1: 41<br />
2: 22<br />
3: 93<br />
4. 84</p>
<ol start="3">
<li></li>
</ol>
<p>Gibt es einen Wartebefehl? Also z.B.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
warten(5sek);
cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
</code></pre>
<p>4. Kann man die schrift so schreiben lassen als ob man sie selbst schreibt? Also ein Text der geschrieben wird und man sieht den Text schreiben? Oder wäre das zu kompliziert?</p>
<p>Hoffe ihr könnt mir helfen,</p>
<p>mfg Marc</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308413/anfängercommands-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 21:12:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308413.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Sep 2012 16:11:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängercommands gesucht on Mon, 24 Sep 2012 16:11:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich denke ich habe schon einen Fehler im Titel wegen dem &quot;commands&quot; gemacht.<br />
Nun, ich brauche folgendes:<br />
1.<br />
Eine Eingabe die auf 4 Ziffern beschränkt ist, und die Ziffer darf nur einmal in diesem 4 Ziffercode vorkommen!!</p>
<ol start="2">
<li></li>
</ol>
<p>Der 4stellige code von oben soll in 4 x 2 - stellige Zahlen unterteilt werden!<br />
Die erste Zahl gibt die Zahl an aus dem vierstelligen Code, die zweite die Position.<br />
Bsp:<br />
4298<br />
1: 41<br />
2: 22<br />
3: 93<br />
4. 84</p>
<ol start="3">
<li></li>
</ol>
<p>Gibt es einen Wartebefehl? Also z.B.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
warten(5sek);
cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
</code></pre>
<p>4. Kann man die schrift so schreiben lassen als ob man sie selbst schreibt? Also ein Text der geschrieben wird und man sieht den Text schreiben? Oder wäre das zu kompliziert?</p>
<p>Hoffe ihr könnt mir helfen,</p>
<p>mfg Marc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254001</guid><dc:creator><![CDATA[M4RC]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Mon, 24 Sep 2012 16:31:03 GMT]]></title><description><![CDATA[<p>M4RC schrieb:</p>
<blockquote>
<ol>
<li></li>
</ol>
<p>Eine Eingabe die auf 4 Ziffern beschränkt ist, und die Ziffer darf nur einmal in diesem 4 Ziffercode vorkommen!!</p>
</blockquote>
<p>Ja, lies einen <code>unsigned short</code> ein, konvertiere diesen zu einem <code>std::string</code> , konvertiere den string wiederum per Start-End Iteratorepaar zu einem <code>std::set</code> und vergleiche die Größen.</p>
<p>M4RC schrieb:</p>
<blockquote>
<ol start="2">
<li></li>
</ol>
<p>Der 4stellige code von oben soll in 4 x 2 - stellige Zahlen unterteilt werden!<br />
Die erste Zahl gibt die Zahl an aus dem vierstelligen Code, die zweite die Position.<br />
Bsp:<br />
4298<br />
1: 41<br />
2: 22<br />
3: 93<br />
4. 84</p>
</blockquote>
<p>Ja, Stringstreams und eine Schleife + Modulo-Operator sollten das tun.</p>
<p>M4RC schrieb:</p>
<blockquote>
<ol start="3">
<li></li>
</ol>
<p>Gibt es einen Wartebefehl? Also z.B.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
warten(5sek);
cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
</code></pre>
</blockquote>
<p>Ja, in C++11 ganz einfach mit Chrono, sonst siehe <code>Sleep()</code> aus der WinAPI.</p>
<p>M4RC schrieb:</p>
<blockquote>
<p>4. Kann man die schrift so schreiben lassen als ob man sie selbst schreibt? Also ein Text der geschrieben wird und man sieht den Text schreiben? Oder wäre das zu kompliziert?</p>
</blockquote>
<p>Ja, mit <code>Sleep()</code> /Der Chrono Lösung und einer Schleife.</p>
<p>Edit: Ich mach gleich mal Beispiele zu allem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254008</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:31:03 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Mon, 24 Sep 2012 16:39:39 GMT]]></title><description><![CDATA[<p>M4RC schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich denke ich habe schon einen Fehler im Titel wegen dem &quot;commands&quot; gemacht.<br />
Nun, ich brauche folgendes:<br />
1.<br />
Eine Eingabe die auf 4 Ziffern beschränkt ist, und die Ziffer darf nur einmal in diesem 4 Ziffercode vorkommen!!</p>
</blockquote>
<p>Es gibt keinen fertigen Zauberbefehl, der dies erledigt. Lies eine Zahl (oder eher eine Zeichenkette bei deiner Beschreibung) und prüfe, ob die Bedingung erfüllt ist. Falls nein, lies noch eine Eingabe, falls ja, fahre bei 2. fort.</p>
<blockquote>
<ol start="2">
<li></li>
</ol>
<p>Der 4stellige code von oben soll in 4 x 2 - stellige Zahlen unterteilt werden!<br />
Die erste Zahl gibt die Zahl an aus dem vierstelligen Code, die zweite die Position.<br />
Bsp:<br />
4298<br />
1: 41<br />
2: 22<br />
3: 93<br />
4. 84</p>
</blockquote>
<p>Auch dazu gibt es keine fertigen Zauberbefehler. Obwohl, eigentlich schon, weil es so einfach sit: Falls du eine Zeichenkette gelesen hast: substr. Falls du eine Zahl gelesen hast: Division und Modulo.</p>
<blockquote>
<ol start="3">
<li></li>
</ol>
<p>Gibt es einen Wartebefehl? Also z.B.</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
warten(5sek);
cout &lt;&lt; &quot;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n&quot;;
</code></pre>
<p>4. Kann man die schrift so schreiben lassen als ob man sie selbst schreibt? Also ein Text der geschrieben wird und man sieht den Text schreiben? Oder wäre das zu kompliziert?</p>
</blockquote>
<p>Wieso wollen Anfänger immer so einen Quatsch mit Warten und Laufschrift und so? Kennst du ein einziges professionelles Programm, welches dies sinnvoll einsetzt? Wenn ein Programm irgendwo zu warten scheint, dann weil es was rechnet und dabei nicht sehr schnell ist. Es ist kein Zeichen von &quot;richtigen&quot; oder gar guten Programmen, dass sie irgendwo lange Verzögerungen drin haben.</p>
<p>Um zur Frage zu kommen: Jain. Nicht direkt in C++ (außer aktives Warten, d.h. Endlosschleife bis gewisse Zeit vergangen ist - nicht zu empfehlen), aber praktisch bietet jedes Betriebssystem eine Wartefunktion an. Dein 4. kannst du dir dann selber damit basteln und nein, es gibt auch da keine fertige Zauberfunktion für.<br />
Aber: Lass es. Es lohnt den Aufwand nicht, wenn es gut werden soll, dann wird es sehr kompliziert und wahrscheinlich lernst du viel mehr, indem du schöne Algorithmen für Aufgaben wie die 1 und 2 schreibst, anstatt Zeit in schöne Darstellung zu investieren. Ich hoffe auch, dass sich Lehrer heutzutage nicht mehr von Laufschrift&amp;Co. beeindrucken lassen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28547">@Sone</a>: Wenn du hier schon mit deinen 1337-Haxor-Skills protzen willst, dann mach es wenigstens richtig. Eine Lösung unter Nutzung der STL ist nur dann gut, wenn sie keine Nachteile hat, sondern Vorteile durch Abstraktion bringt. Deine short-string-set-Lösung ist totaler Müll zu Laufzeit und bezüglich flexibilität. Und dein chrono-sleep möchte ich auch mal sehen. Du hast wahrscheinlich noch nie geguckt, was in chrono überhaupt für Funktionen sind und was sie können. Aber C++11 ist für dich ja das zweite Kommen von Bjarne Stroustrup, das muss ja einfach eine Lösung parat haben <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="🙄"
    /> . Wenn schon, dann verweise auf sleep_for aus thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254009</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:39:39 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Mon, 24 Sep 2012 16:57:12 GMT]]></title><description><![CDATA[<p>Eigentlich meinte ich das:</p>
<pre><code class="language-cpp">std::this_thread::sleep_for(std::chrono::seconds(1));
</code></pre>
<p>Hatte das nur schlecht in Erinnerung, deswegen kam ich auf chrono.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254016</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:57:12 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Mon, 24 Sep 2012 19:00:47 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>[Wieso wollen Anfänger immer so einen Quatsch mit Warten und Laufschrift und so?</p>
</blockquote>
<p>Wahrscheinlich weil sie gar nicht beurteilen können, was schwierig und was einfach zu implementieren ist.</p>
<p>Hallo Marc,</p>
<p>Deine Anforderungen sind wahrlich nicht mit Anfänger-Code zu machen. Ganz im Gegenteil. Das was Du da forderst sind im wesentlichen gehoben Anforderungen an den Input</p>
<p>M4RC schrieb:</p>
<blockquote>
<p>Eine Eingabe die auf 4 Ziffern beschränkt ist, und die Ziffer darf nur einmal in diesem 4 Ziffercode vorkommen!!</p>
</blockquote>
<p>.. ich verstehe das als 'jede Ziffer darf nur einmal vorkommen'</p>
<p>und den Output</p>
<p>M4RC schrieb:</p>
<blockquote>
<p>Kann man die schrift so schreiben lassen als ob man sie selbst schreibt? Also ein Text der geschrieben wird und man sieht den Text schreiben? Oder wäre das zu kompliziert?</p>
</blockquote>
<p>Ja - es ist kompliziert, aber machbar. Und da es Input &amp; Output ist, hat es natürlich viel mit der IO-Library von C++ zu tun - irgendwie logisch - oder?<br />
Ich hab' Dir mal eine kleine Demo geschrieben, falls Du Fragen hast, so nur heraus damit.</p>
<pre><code class="language-cpp">#define WIN32_LEAN_AND_MEAN
#define NOMINMAX // notwendig wegen numeric_limits&lt; streamsize &gt;::max()
#include &quot;Windows.h&quot; // falls das OS kein Windows ist, bitte Funktion 'warte_etwas()' ersetzen (s.u.)

#include &lt;iostream&gt;
#include &lt;locale&gt;
#include &lt;algorithm&gt;
#include &lt;cassert&gt;
#include &lt;limits&gt;

// -- Struktur für die vier Zahlen
struct VierZahlen
{
    int operator[](  std::size_t idx ) const
    {
        assert( idx &lt; 4 );
        return digits_[idx] * 10 + idx + 1;
    }
    friend std::istream&amp; operator&gt;&gt;( std::istream&amp; in, VierZahlen&amp; vz );
private:
    int digits_[4];
};

// --  Funktion zum Einlesen der Struktur 'VierZahlen'
namespace vierzahlen_detail
{
    bool set( int* arr, int* arrEnd, int val )
    {
        if( std::find( arr, arrEnd, val ) != arrEnd )
            return false;
        *arrEnd = val;
        return true;
    }
}

std::istream&amp; operator&gt;&gt;( std::istream&amp; in, VierZahlen&amp; vz )
{
    std::istream::sentry ok( in );
    if( ok )
    {
        std::ios_base::iostate state = std::ios_base::goodbit;
        try
        {
            typedef std::istream::traits_type Traits;
            const std::ctype&lt; char &gt;&amp; ctype_ = std::use_facet&lt; std::ctype&lt; char &gt; &gt;( in.getloc() );
            for( std::size_t idx = 0; idx &lt; 4; ++idx, in.rdbuf()-&gt;sbumpc() )
            {
                std::istream::int_type m = in.rdbuf()-&gt;sgetc();
                if( Traits::eq_int_type( m, Traits::eof() ) )
                {
                    state |= std::ios_base::eofbit | std::ios_base::failbit;
                    break;
                }
                const char c = Traits::to_int_type( m );
                if( !ctype_.is( std::ctype_base::digit, c ) || !vierzahlen_detail::set( vz.digits_, vz.digits_ + idx, c - '0' ) )
                {
                    state |= std::ios_base::failbit;
                    break;
                }
            }
        }
        catch(...)
        {
            state |= std::ios_base::badbit;
            if( in.exceptions() &amp; std::ios_base::badbit )
                throw; // re-throw
        }
        in.setstate( state );
    }
    return in;
}

// -- OS-abhängige Implementierung oder C++11, falls verfügbar
void warte_etwas()
{
    // std::this_thread::sleep_for( std::chrono::milliseconds(200) );
    Sleep( 200 ); // .. unter Windows
}

// --   dieser streambuf verzögert die Ausgabe jedes einzelnen Zeichens
class Ticker : public std::streambuf
{
public:
    explicit Ticker( std::basic_ios&lt; char &gt;&amp; out )
        : out_( out )
        , sink_( out.rdbuf( this ) )
    {}
    ~Ticker()
    {
        out_.rdbuf( sink_ );
    }
protected:
    virtual int_type overflow( traits_type::int_type m = traits_type::eof() )
    {
        warte_etwas();
        if( traits_type::eq_int_type( m, traits_type::eof() ) )
            return sink_-&gt;pubsync() == 0? traits_type::not_eof( m ): m;
        return sink_-&gt;sputc( traits_type::to_char_type( m ) );
    }
private:
    std::basic_ios&lt; char &gt;&amp; out_;
    std::streambuf* sink_;

    // --   nicht kopierbar
    Ticker( const Ticker&amp; );
    Ticker&amp; operator=( const Ticker&amp; );
};

// --  und endlich das Hauptprogramm
int main()
{
    using namespace std;
    VierZahlen vz;
    cout &lt;&lt; &quot;Bitte vier Ziffern eingeben; keine Ziffer darf zweimal vorkommen\n&quot;;
    for( ; !(cin &gt;&gt; vz); cin.ignore( numeric_limits&lt; streamsize &gt;::max(), '\n' ) )
    {
        cerr &lt;&lt; &quot;Fehler bei der Eingabe - bitte noch mal versuchen&quot; &lt;&lt; endl;
        cin.clear();
        if( !cin )
            return -2; // Fatal Error
    }
    Ticker ticktick( cout );
    cout &lt;&lt; &quot;Die vier Zahlen sind: \n&quot;;
    for( size_t i = 0; i &lt; 4; ++i )
        cout &lt;&lt; i &lt;&lt; &quot;.) &quot; &lt;&lt; vz[i] &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254050</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 24 Sep 2012 19:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Tue, 25 Sep 2012 17:35:29 GMT]]></title><description><![CDATA[<p>Also ich hab Werners Programm mal ein paar mal ausgeführt, und hab was geschrieben was dasselbe macht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;

void buchstabieren(const std::string&amp; s)
{
    for(std::string::const_iterator i = s.begin(); i != s.end(); ++i)
    {
        std::cout &lt;&lt; *i;
        Sleep(90);
    }
}

int main()
{
    std::cout &lt;&lt; &quot;4 Ziffern: &quot;;
    std::vector&lt;char&gt; ziffern;
    for(char ziffer; ziffern.size() != 4;)
        if((std::cin.get(ziffer)) &amp;&amp; std::isdigit(ziffer) &amp;&amp; std::find(ziffern.begin(), ziffern.end(), ziffer) == ziffern.end())
            ziffern.push_back(ziffer);
    buchstabieren(&quot;Die Ziffern waren:\n&quot;);
    for(char i = '0'; i &lt; '4'; ++i)
        buchstabieren((std::string() += i) + &quot;.) &quot; + (std::string() += ziffern[i - '0']) + (std::string() += i+1) + &quot;\n&quot;);
}
</code></pre>
<p>Ich verstehe nicht, warum man das so aufwändig wie Werner machen sollte. Ich hab früher als Anfänger auch mal sowas gebraucht, und dieses &quot;buchstabieren()&quot; hat mir vollkommen gereicht. Man muss ein bisschen tricksen (oder gleich ne Funktion zu_string(int) schreiben), aber dafür nicht so ein komisches Monster verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254365</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Tue, 25 Sep 2012 17:35:29 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Tue, 25 Sep 2012 18:29:30 GMT]]></title><description><![CDATA[<p>Jetzt musst du aber immer erst einen String basteln, anstatt einfach das ganze Programm zu lassen wie es ist. Das ist erstens nicht sehr schön (deine Zeile 24) und wird zweitens sehr kompliziert, wenn es mal nicht um einfache Ziffernfolgen geht. Da müsstest du dann wieder zu einem Stringstream greifen, aus diesem wieder den String holen und den dann buchstabieren lassen. Also über drei Umwege das was Werners Variante direkt erreicht.</p>
<p>Hier kann man schön den Unterschied in den Abstraktionsebenen sehen: Werners Lösung hat eine sehr komplizierte Buchstabierfunktion von der der Threadersteller vermutlich keine einzige Zeile versteht, dafür ist die Benutzung genau die gleiche wie er sie schon aus dem ersten Kapitel eines Lehrbuches kennt. Deine Lösung hat eine sehr leicht verständliche Buchstabierfunktion (kapiert der Threadersteller bestimmt schon beim ersten Lesen komplett), dafür ist die Benutzung umständlich (wenn auch verständlich).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254389</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Sep 2012 18:29:30 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängercommands gesucht on Tue, 25 Sep 2012 19:20:12 GMT]]></title><description><![CDATA[<p>Dafür erkennt Werner's Programm keine 0 als Ziffer <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/2254407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254407</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Tue, 25 Sep 2012 19:20:12 GMT</pubDate></item></channel></rss>