<?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[sscanf - PROBLEME]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich schreibe für ein Studienprojekt eine Klasse, die Daten einer Textdatei einliest,dann teilweise mit &quot;sscanf&quot; in einem array speichert und schließlich ausgibt.</p>
<p>Leider treten immer wieder zwei Fehler auf!</p>
<p>Ganz große Bitte auf Hilfe!!!!</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
using namespace std;</p>
<p>string readData()<br />
{<br />
//Daten werden eingelesen<br />
fstream f;<br />
char line[256]= {' '};<br />
string daten= &quot; &quot;;<br />
f.open(&quot;E:\\alte_Beispieldaten.txt&quot;, ios::in);</p>
<p>if (f.is_open())<br />
{</p>
<p>while(!f.eof())<br />
{<br />
f.getline(line, sizeof(line));<br />
daten+=line;<br />
daten+=&quot;\n&quot;;</p>
<p>}<br />
f.close();<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;Fehler beim Lesen der Datei&quot;;<br />
}</p>
<p>return daten;<br />
}</p>
<p>float Knoten10004 (string daten)<br />
{</p>
<p>int Berechnungsschritt = 300;</p>
<p>float k10004[Berechnungsschritt][6];</p>
<p>//Daten werden sortiert und mittels sscanf als float im array gesperichert</p>
<p>for (int n=1;n&lt;=Berechnungsschritt;n++)</p>
<p>{<br />
sscanf (daten ,&quot;%f %f %f %f %f %f &quot;,&amp;k10004[n][0], &amp;k10004[n][1],&amp;k10004[n][2],&amp;k10004[n][3],<br />
&amp;k10004[n][4],&amp;k10004[n][5]);<br />
daten.erase(n*256);</p>
<p>}</p>
<p>return k10004[300][6];<br />
}</p>
<p>void ausgabe(float k10004[300][6])<br />
{</p>
<p>for (int n=0;n&lt;300;n++)<br />
{<br />
for(int j=0;j&lt;6;j++)<br />
{<br />
cout &lt;&lt; k10004[n][j];<br />
cout &lt;&lt; &quot;\t&quot;;<br />
}<br />
cout&lt;&lt;endl;<br />
}</p>
<p>}</p>
<p>int main()<br />
{</p>
<p>ausgabe(Knoten10004);</p>
<p>return 0;<br />
}</p>
<p>Die Fehlermeldungen:</p>
<p>|51|error: no matching function for call to `sscanf(std::string&amp;, const char[18], float*, float*, float*, float*, float*, float*)'|</p>
<p>|79|error: cannot convert `float (<em>)(std::string)' to `float (</em>)[6]' for argument `1' to `void ausgabe(float (*)[6])'|</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268537/sscanf-probleme</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:53:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268537.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jun 2010 15:20:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 15:20:51 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich schreibe für ein Studienprojekt eine Klasse, die Daten einer Textdatei einliest,dann teilweise mit &quot;sscanf&quot; in einem array speichert und schließlich ausgibt.</p>
<p>Leider treten immer wieder zwei Fehler auf!</p>
<p>Ganz große Bitte auf Hilfe!!!!</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
using namespace std;</p>
<p>string readData()<br />
{<br />
//Daten werden eingelesen<br />
fstream f;<br />
char line[256]= {' '};<br />
string daten= &quot; &quot;;<br />
f.open(&quot;E:\\alte_Beispieldaten.txt&quot;, ios::in);</p>
<p>if (f.is_open())<br />
{</p>
<p>while(!f.eof())<br />
{<br />
f.getline(line, sizeof(line));<br />
daten+=line;<br />
daten+=&quot;\n&quot;;</p>
<p>}<br />
f.close();<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;Fehler beim Lesen der Datei&quot;;<br />
}</p>
<p>return daten;<br />
}</p>
<p>float Knoten10004 (string daten)<br />
{</p>
<p>int Berechnungsschritt = 300;</p>
<p>float k10004[Berechnungsschritt][6];</p>
<p>//Daten werden sortiert und mittels sscanf als float im array gesperichert</p>
<p>for (int n=1;n&lt;=Berechnungsschritt;n++)</p>
<p>{<br />
sscanf (daten ,&quot;%f %f %f %f %f %f &quot;,&amp;k10004[n][0], &amp;k10004[n][1],&amp;k10004[n][2],&amp;k10004[n][3],<br />
&amp;k10004[n][4],&amp;k10004[n][5]);<br />
daten.erase(n*256);</p>
<p>}</p>
<p>return k10004[300][6];<br />
}</p>
<p>void ausgabe(float k10004[300][6])<br />
{</p>
<p>for (int n=0;n&lt;300;n++)<br />
{<br />
for(int j=0;j&lt;6;j++)<br />
{<br />
cout &lt;&lt; k10004[n][j];<br />
cout &lt;&lt; &quot;\t&quot;;<br />
}<br />
cout&lt;&lt;endl;<br />
}</p>
<p>}</p>
<p>int main()<br />
{</p>
<p>ausgabe(Knoten10004);</p>
<p>return 0;<br />
}</p>
<p>Die Fehlermeldungen:</p>
<p>|51|error: no matching function for call to `sscanf(std::string&amp;, const char[18], float*, float*, float*, float*, float*, float*)'|</p>
<p>|79|error: cannot convert `float (<em>)(std::string)' to `float (</em>)[6]' for argument `1' to `void ausgabe(float (*)[6])'|</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910113</guid><dc:creator><![CDATA[polly]]></dc:creator><pubDate>Thu, 10 Jun 2010 15:20:51 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 15:26:22 GMT]]></title><description><![CDATA[<p>sscanf ist definiert als</p>
<p>int sscanf ( const char * str, const char * format, ...);</p>
<p>Warum sollte das als ersten Parameter eine Referenz auf einen std::string aufnehmen?</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910119</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 10 Jun 2010 15:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 15:45:57 GMT]]></title><description><![CDATA[<p>Ok. Dann brauche ich bitte Hilfe wie ich das Problem lösen kann! <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910139</guid><dc:creator><![CDATA[polly]]></dc:creator><pubDate>Thu, 10 Jun 2010 15:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 15:55:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">sscanf(daten.c_str(), ...)
</code></pre>
<p>sscanf ist nicht sehr fein, warum machst du es nicht mit Streams?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910149</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Thu, 10 Jun 2010 15:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 16:01:51 GMT]]></title><description><![CDATA[<p>Streams? kenne ich leider nicht! Wie wird das verwendet?<br />
mein c++ wissen beschränkt sich leider auf ein semester vorlesung, die auch schon länger her ist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910157</guid><dc:creator><![CDATA[polly]]></dc:creator><pubDate>Thu, 10 Jun 2010 16:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 16:29:52 GMT]]></title><description><![CDATA[<p>Du verwendest doch schon streams!</p>
<pre><code class="language-cpp">fstream f;
</code></pre>
<p>Der einzige Unterschied ist jetzt, daß du keinen File-Stream sondern einen String-Stream benötigst:</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;

void Knoten10004(const string &amp;daten)
{
  istringstream istr(daten);

  float f1, f2;

  daten &gt;&gt; f1 &gt;&gt; f2;
}
</code></pre>
<p>Wobei ich jetzt gerade nochmal deinen Code angeschaut habe - du kannst einfach den File-Stream übergeben:</p>
<pre><code class="language-cpp">void readData()
{
  if (f.is_open())
  {
     Knoten10004(f);
  }
}

void Knoten10004(ifstream &amp;iff)
{
  float f1, f2;

  iff &gt;&gt; f1 &gt;&gt; f2;
}
</code></pre>
<p>P.S. Die Rückgabewerte bei deinen Funktionen machen bisher keinen Sinn (bzw. sind sogar falsch!), so daß ich sie einfach auf &quot;void&quot; geändert habe!</p>
<p>Aber schreib ersteinmal deinen Code um, und dann mach dir Gedanken über die richtige Übergabe von Parametern sowie Rückgabe von Funktionswerten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910173</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 10 Jun 2010 16:29:52 GMT</pubDate></item><item><title><![CDATA[Reply to sscanf - PROBLEME on Thu, 10 Jun 2010 16:30:01 GMT]]></title><description><![CDATA[<p>polly schrieb:</p>
<blockquote>
<p>Streams? kenne ich leider nicht! Wie wird das verwendet?<br />
mein c++ wissen beschränkt sich leider auf ein semester vorlesung, die auch schon länger her ist!</p>
</blockquote>
<p>Streams sind zum Beispiel cout und cin die du ja offensichtlich kennst. cin ist ein std::istream und cout ist ein std::ostream. Es gibt auch einen Stream mit dem man Strings bearbeiten kann, der nennt sich std::stringstream und ist sowohl ein ostream als auch gleichzeitig ein istream. Das heißt, wenn du mit cin und cout umgehen kannst, kannst du automatisch auch mit stringstreams umgehen. Schön, oder?</p>
<p>eine Übersicht über die Hierarchie und eine Beschreibung aller Methoden mit Beispiel findest du hier:<br />
<a href="http://www.cplusplus.com/reference/iostream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910174</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jun 2010 16:30:01 GMT</pubDate></item></channel></rss>