<?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[Int bereich - String eingabe]]></title><description><![CDATA[<p>Hab ne for schleife geschriebenn</p>
<p>am anfang des programmes wird verlangt eine zahl einzugeben..<br />
wenn man z.b. 5 eingibt, wird 5 mal hinterenander &quot;hello world&quot; geschrieben..</p>
<p>jetzt will ich mein programm erweitern.. es soll eine fehlermeldung erscheinen wenn man am anfang statt zahl ein buchstabe eingibt..</p>
<p>(ich kann erst dos programme schreiben)</p>
<p>MfG<br />
technology</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124656/int-bereich-string-eingabe</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 01:36:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124656.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Oct 2005 23:20:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Int bereich - String eingabe on Sat, 29 Oct 2005 23:20:10 GMT]]></title><description><![CDATA[<p>Hab ne for schleife geschriebenn</p>
<p>am anfang des programmes wird verlangt eine zahl einzugeben..<br />
wenn man z.b. 5 eingibt, wird 5 mal hinterenander &quot;hello world&quot; geschrieben..</p>
<p>jetzt will ich mein programm erweitern.. es soll eine fehlermeldung erscheinen wenn man am anfang statt zahl ein buchstabe eingibt..</p>
<p>(ich kann erst dos programme schreiben)</p>
<p>MfG<br />
technology</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903644</guid><dc:creator><![CDATA[technology]]></dc:creator><pubDate>Sat, 29 Oct 2005 23:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sat, 29 Oct 2005 23:39:43 GMT]]></title><description><![CDATA[<p>void eingabe(const std::string &amp; txt, double * var)<br />
{<br />
do<br />
{<br />
if (std::cin.fail())<br />
{ //Fehlerstatus löschen<br />
std::cin.clear();<br />
//Eingabepuffer leeren<br />
std::cin.ignore(std::numeric_limits&lt;int&gt;::max(), '\n');<br />
}<br />
//Eingabe-Aufforderung ausgeben<br />
std::cout &lt;&lt; txt;<br />
//Variable einlesen<br />
std::cin &gt;&gt; *var;<br />
} while(std::cin.fail());<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903650</guid><dc:creator><![CDATA[Die Lösung]]></dc:creator><pubDate>Sat, 29 Oct 2005 23:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sat, 29 Oct 2005 23:46:52 GMT]]></title><description><![CDATA[<p>Wär schön gewesen, du hättest gesagt, wie du es machst/welche Funktion du verwendest.<br />
Wenn du atoi oder atol verwendest musst du vorher selbst testen, da die beiden im Falle eines Buchstabens einfach 0 zurückliefern.<br />
Das einfachste ist einfach zu testen, ob die Eingabe nur Ziffern enthält</p>
<pre><code class="language-cpp">#include &lt;ctype.h&gt;
/*...*/
string eingabe;
for (int i = 0; i&lt;eingabe.size()-1; i++){ // size()-1 um das Enter nicht zutesten
  if (!isdigit(eingabe[i])) // Fehler
}
</code></pre>
<p>Wenn die Schleife ohne Fehler durchläuft sind nur Zahlen im String.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903652</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Sat, 29 Oct 2005 23:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 16:35:47 GMT]]></title><description><![CDATA[<pre><code>[cpp]#include &lt;iostream.h&gt;
int main()
{
        int i;
        cout &lt;&lt; &quot;Geben sie eine Zahl ein.\n&quot;;
        cin &gt;&gt; i;
        getchar();
        for (int j = 0; j &lt; i; j++)
        {
          cout &lt;&lt; &quot;Hello World\n&quot;;
        }
        cout &lt;&lt; &quot;\nDrücke ENTER um das Programm zu beende\n&quot;;
        getchar();
}[/cpp]
</code></pre>
<p>das ist normalerweise mein code, was du mir da gegeben hast ist echt kompliziert..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903653</guid><dc:creator><![CDATA[technology]]></dc:creator><pubDate>Sun, 30 Oct 2005 16:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 16:36:12 GMT]]></title><description><![CDATA[<p>das ist jetzt mein code..</p>
<pre><code>[cpp]#include &lt;iostream.h&gt;
#include &lt;ctype.h&gt;
int main()
{
        cout &lt;&lt; &quot;Bitte Zahl eingeben\n&quot;;
        string eingabe;
        cin &gt;&gt; eingabe;
        getchar();
        for (int i = 0; i &lt; eingabe.size()-1; i++)
        {
                if (!isdigit(eingabe[1])) {
                        cout &lt;&lt; &quot;Bitte ein Zahl eingeben\n&quot;;
                        getchar();
        }
        else
        {
        cout &lt;&lt; &quot;\nFehler\n&quot;;
        getchar();
        }}}[/cpp]
</code></pre>
<p>funktioniert aber nicht, könnt ihr mir weitere tipps geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903658</guid><dc:creator><![CDATA[technology]]></dc:creator><pubDate>Sun, 30 Oct 2005 16:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 03:27:30 GMT]]></title><description><![CDATA[<p>Mein erster Tipp/Bitte, bitte verwende Code- oder besser noch C++-Tags um deinen Code zu posten, ist besser zum lesen.<br />
2. Wenn du schon C++ machst, verwende auch C++-Header</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; // Der C++-Header
#include &lt;ctype.h&gt;

using namespace std; // Benötigt für string und cin/cout

int main()
{
  string eingabe;
  bool mis; // Soll zeigen, ob ein Fehler gamacht wurde bei der Eingabe
  do { //Beginn der endgeprüften Schleife
    mis = false; // Annahme Eingabe ist korrekt (kein Fehler, darum mis = false)
    cout &lt;&lt; &quot;Bitte Zahl eingeben\n&quot;;
    cin &gt;&gt; eingabe;
    for (int i = 0; i &lt; eingabe.size(); i++) //Koorektur von mir, Enter wird nicht im String gespeichert
    {
      if (!isdigit(eingabe[i])) { // hier war einer deiner Fehler, nicht eingabe[1], sondern eingabe[i]
        mis = true; // Es wurde ein Fehler gefunden
        break; //Abbruch der for-Schleife
      }
    }
    if (mis) cout &lt;&lt; &quot;\nFehler\n&quot;; // Wenn ein Fehler austrat Meldung
  } while (mis); // Ende der endgeprüften Schleife
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/903672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903672</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Sun, 30 Oct 2005 03:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 12:09:20 GMT]]></title><description><![CDATA[<p>imhotep schrieb:</p>
<blockquote>
<p>Wenn du schon C++ machst, verwende auch C++-Header</p>
</blockquote>
<p>Na dann aber auch bitte</p>
<pre><code class="language-cpp">#include &lt;cctype&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/903820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903820</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 30 Oct 2005 12:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 16:40:11 GMT]]></title><description><![CDATA[<p><strong>imhotep</strong> vielen dank.. dein beitrag ist echt sehr übersichtlich..</p>
<p>eine frage, ich bin ganz neu in c++. und würde gerne wissen was C++-Header sind?</p>
<p>Hab dein Code compiliert, funktioniert, aber gibt keine nachricht aus, das programm wird gleich geschlossen..</p>
<p>nur wenn ich irgendeinen fehler mache (buchstabe eingebe)<br />
steht dann dort Fehler</p>
<p>Bitte Zahl eingeben..</p>
<p>eine kleine hilfe bitte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>MfG<br />
technology</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903952</guid><dc:creator><![CDATA[technology]]></dc:creator><pubDate>Sun, 30 Oct 2005 16:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 17:03:11 GMT]]></title><description><![CDATA[<p>[quote=&quot;technology&quot;]</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
int main()
{
        int i;
        cout &lt;&lt; &quot;Geben sie eine Zahl ein.\n&quot;;
        cin &gt;&gt; i;
</code></pre>
<p>Dazu muss man vielleicht wissen, dass die iostream's - in diesem Fall der std::istream in Gestalt von 'cin' - bereits intern eine Fehlerbehandlug durchführen. Wenn beim Einlesen ein Fehler aufgetreten ist, so wird stream-intern ein Fehlerflag gesetzt, welches man entweder mit fail() oder einfach mit</p>
<pre><code class="language-cpp">cin &gt;&gt; i;
    if( cin )
    {
        // 'i' ist korrekt gelesen
</code></pre>
<p>abfragen kann. Es ist also nicht (!) notwendig, genau genommen sogar ein Fehler, selber die Zeichen einzulesen und zu begutachten, ob eine Zahl vorliegt.</p>
<p>Dein Code könnte im Prinzip so aussehen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    using namespace std; // cout, endl, usw. sind im namespace std definiert
    int i;
    cout &lt;&lt; &quot;Geben sie eine Zahl ein.\n&quot;;
    cin &gt;&gt; i;
    if( cin )
    {
        for (int j = 0; j &lt; i; j++)
        {
            cout &lt;&lt; &quot;Hello World\n&quot;;
        }
    }
    else
        cerr &lt;&lt; &quot;Die Eingabe war kein Zahl &quot; &lt;&lt; endl;

    cout &lt;&lt; &quot;\nDrücke ENTER um das Programm zu beende\n&quot;;
    getchar();
    return 0;
}
</code></pre>
<p>Bleibt noch zu erwähnen, dass man dieses stream-interne Fehlerflag mit clear() - also z.B.: cin.clear() - wieder löschen kann bzw. muss bevor eine weitere Eingabe möglich wird.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/903962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903962</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 30 Oct 2005 17:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 17:33:03 GMT]]></title><description><![CDATA[<p><strong>Werner Salomon</strong>, danke jetzt verstehe ich es besser.</p>
<p>Vielen Dank.</p>
<p>MfG</p>
<pre><code>technology
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/903970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903970</guid><dc:creator><![CDATA[technology]]></dc:creator><pubDate>Sun, 30 Oct 2005 17:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Int bereich - String eingabe on Sun, 30 Oct 2005 17:42:49 GMT]]></title><description><![CDATA[<p>Werner Salomon <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/903979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903979</guid><dc:creator><![CDATA[:leck:]]></dc:creator><pubDate>Sun, 30 Oct 2005 17:42:49 GMT</pubDate></item></channel></rss>