<?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[optionale Eingabe mit String nach Float Umwandlung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hab mal wieder ein keliens Problem:</p>
<p>für mein Programm soll der nutzer mehrer variabeln eingeben können.<br />
Bei diesen handelst es sich um strings bzw hauptsächlich floats.<br />
Zusätzlich soll aber auch keine eingabe möglich sein.</p>
<p>Nach etwas herumsuchen bin ich unteranderem hier auf einen Forumsbeitrag (<a href="http://www.c-plusplus.net/forum/201083-10" rel="nofollow">http://www.c-plusplus.net/forum/201083-10</a>)<br />
zu leeren Eingaben und zum Hinweis für die Umwandlungs von Strings in Floats im FAQ gestoßen(<a href="http://www.c-plusplus.net/forum/39488" rel="nofollow">http://www.c-plusplus.net/forum/39488</a>).<br />
das ganze habe ich mir durchgelesen und bin auf folgenden Code gekommen, der ohne Compilerfehler läuft:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Bitte geben sie die gew\x81 \bnschte maximale Drehzahl [1/min] an:&quot; &lt;&lt; endl;
		scanf(Buffer);
		cout &lt;&lt; Buffer &lt;&lt; endl;
		while ((c = getchar()) != EOF &amp;&amp; c != '\n');
		strstream Str1(Buffer, 20); 
		Str1 &lt;&lt; Buffer&lt;&lt; ends; 
		Str1 &gt;&gt; n_max; 
		cout &lt;&lt; n_max &lt;&lt; endl;
</code></pre>
<p>Das ganze ergibt aber keine vernünftigen Ergebnisse. Ein Tauschen von scanf(Buffer); hin zu scanf(&quot;%[^\n]s&quot;,Buffer); bringt keine verbesserung .<br />
Nutzen von gets() oder cin funktioniert auch nicht.<br />
cin führt dazu, das keine Leereigaben möglich sind und gets() lässt das PRogramm die Eingabe ausm ir nicht erklärlichen gründen überspringen ...</p>
<p>Zur vollständigkeit die headerdateien und die variabelendefinition:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;time.h&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;vector&gt;
#include &lt;iomanip&gt;

#include &lt;strstream&gt;
#include &lt;cstdlib&gt;

...

char Buffer[20];						// Übergabevariable für Eingabe!!!
</code></pre>
<p>hoffe ihr könnt mir nen hilfreichen tip geben <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/287646/optionale-eingabe-mit-string-nach-float-umwandlung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 08:44:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287646.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Jun 2011 11:30:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 11:35:53 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>hab mal wieder ein keliens Problem:</p>
<p>für mein Programm soll der nutzer mehrer variabeln eingeben können.<br />
Bei diesen handelst es sich um strings bzw hauptsächlich floats.<br />
Zusätzlich soll aber auch keine eingabe möglich sein.</p>
<p>Nach etwas herumsuchen bin ich unteranderem hier auf einen Forumsbeitrag (<a href="http://www.c-plusplus.net/forum/201083-10" rel="nofollow">http://www.c-plusplus.net/forum/201083-10</a>)<br />
zu leeren Eingaben und zum Hinweis für die Umwandlungs von Strings in Floats im FAQ gestoßen(<a href="http://www.c-plusplus.net/forum/39488" rel="nofollow">http://www.c-plusplus.net/forum/39488</a>).<br />
das ganze habe ich mir durchgelesen und bin auf folgenden Code gekommen, der ohne Compilerfehler läuft:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Bitte geben sie die gew\x81 \bnschte maximale Drehzahl [1/min] an:&quot; &lt;&lt; endl;
		scanf(Buffer);
		cout &lt;&lt; Buffer &lt;&lt; endl;
		while ((c = getchar()) != EOF &amp;&amp; c != '\n');
		strstream Str1(Buffer, 20); 
		Str1 &lt;&lt; Buffer&lt;&lt; ends; 
		Str1 &gt;&gt; n_max; 
		cout &lt;&lt; n_max &lt;&lt; endl;
</code></pre>
<p>Das ganze ergibt aber keine vernünftigen Ergebnisse. Ein Tauschen von scanf(Buffer); hin zu scanf(&quot;%[^\n]s&quot;,Buffer); bringt keine verbesserung .<br />
Nutzen von gets() oder cin funktioniert auch nicht.<br />
cin führt dazu, das keine Leereigaben möglich sind und gets() lässt das PRogramm die Eingabe ausm ir nicht erklärlichen gründen überspringen ...</p>
<p>Zur vollständigkeit die headerdateien und die variabelendefinition:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;time.h&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;vector&gt;
#include &lt;iomanip&gt;

#include &lt;strstream&gt;
#include &lt;cstdlib&gt;

...

char Buffer[20];						// Übergabevariable für Eingabe!!!
</code></pre>
<p>hoffe ihr könnt mir nen hilfreichen tip geben <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2071980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071980</guid><dc:creator><![CDATA[Stevewonda]]></dc:creator><pubDate>Wed, 01 Jun 2011 11:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 11:45:38 GMT]]></title><description><![CDATA[<p>Entscheide dich für C oder C++, das verringert schon mal die Fehlerquellen.</p>
<p>Dein Quelltext sieht wie C++ aus, dann wird das verschoben, wenn es so sein soll.</p>
<p>Aber was sollen die C Header in C++ Quelltext? Nur die Header einfügen die benötigt werden!</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071985</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Wed, 01 Jun 2011 11:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 11:52:52 GMT]]></title><description><![CDATA[<p>Hier C++<br />
<a href="http://www.cplusplus.com/reference/string/getline/" rel="nofollow">http://www.cplusplus.com/reference/string/getline/</a></p>
<p>Dein Link zeigt eine C-Variante!</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071988</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Wed, 01 Jun 2011 11:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 12:22:13 GMT]]></title><description><![CDATA[<p>erst mal danke f.-th. für den Tipp.</p>
<p>hab das ganze mit getline versucht ...</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Bitte geben sie die gew\x81 \bnschte maximale drehzahl [1/min] an:&quot; &lt;&lt;endl;
        getline (cin,Buffer);
        while ((c = getchar()) != EOF &amp;&amp; c != '\n'); 
		cout &lt;&lt; Buffer &lt;&lt; endl; 
        strstream Str1; 
        Str1 &lt;&lt; Buffer&lt;&lt; ends; 
        Str1 &gt;&gt; T_max; 
        cout &lt;&lt; Buffer &lt;&lt; endl;
        cout &lt;&lt; m_max &lt;&lt; endl;
</code></pre>
<p>geb ich da nun als Eingabe 8 ein<br />
bleibt aber weiterhin die variable Buffer leer und n_max behält den WertO, mit dem ich die Variabel initialisiert habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071998</guid><dc:creator><![CDATA[Stevewonda]]></dc:creator><pubDate>Wed, 01 Jun 2011 12:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 12:23:11 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u109509" rel="nofollow">SeppJ</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f10" rel="nofollow">C (C89 und C99)</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071999</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 01 Jun 2011 12:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 12:27:20 GMT]]></title><description><![CDATA[<p>Ach, so etwas habe ich zufällig vor 2 Wochen mal selber gebraucht und mir dafür eine nette Funktion geschrieben. Ein getline mit Defaultwert. Ist nicht unbedingt hübsch, aber funktionell:</p>
<pre><code class="language-cpp">template&lt;typename T&gt; T default_getline(istream &amp;input, const T&amp; default_value)
{
 begin:
  try
    {
      string line;
      getline(input, line);
      if (line.size())
        {
          stringstream parser;
          T return_value;
          parser.exceptions(ios::failbit | ios::badbit);
          parser &lt;&lt; line;
          parser &gt;&gt; return_value;
          return return_value;
        }
      else return default_value;
    }
  catch(ios::failure e)
    {
      cerr &lt;&lt; &quot;Could not read value correctly, try again: &quot;;
      goto begin;
    }
}
</code></pre>
<p>Benutzung sollte klar sein, ansonsten nachfragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072002</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 01 Jun 2011 12:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to optionale Eingabe mit String nach Float Umwandlung on Wed, 01 Jun 2011 13:12:56 GMT]]></title><description><![CDATA[<p>keine Ahnung warum, aber ich bekomme gar keine werte in die Variabel Buffer hinhein.</p>
<p>hab keine ahnung warum das nicht will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /></p>
<p>bekomme nur cin &gt;&gt; Buffer;<br />
einen wert der Variabel zugewiesen alles andere funktioniert nicht ...<br />
mit cin kann ich aber keine leerangabe machen ...</p>
<p>hab gerade nochmal überprüft wie die eingabe mit getline() funktioniert:<br />
setze ich das Beispielprogramm aus dem Link von f.-th. ein funktioniert das ganze <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="😞"
    /><br />
schließe daraus, das ich mit einem anderen befehl das ganze störe, aber nur mit welchem ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072015</guid><dc:creator><![CDATA[Stevewonda]]></dc:creator><pubDate>Wed, 01 Jun 2011 13:12:56 GMT</pubDate></item></channel></rss>