<?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[Float aus binary Datei wandeln]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme nur 0,00 als ausgaben und weiß leider nicht was ich falsch mache.<br />
Es soll eine datei in binary ausgelesen werden in der die E reihen als text stehen. Diese sollen dann als float ausgegeben werden. Eigentlich gewandelt in die Datei zurück geschrieben werden, aber ich wäre froh sie erst mal auf dem bildschirm richtig zu sehen.</p>
<pre><code>using namespace std; 

int main ( int argc , char *argv[] )
{

  char sDateibezeichnung[256];
  ifstream Eingabedatei;
  float E[96];			// In diesem Array sollen die aus der Datei gelesenen E Werte gespeichert werden !
  int i, laenge;        
  char * buffer;

  if(argc!=2)
  {
	printf_s(&quot;Ungültige Eingabe&quot;);
	system(&quot;pause&quot;);
    exit(1);
  }
  strcpy_s (sDateibezeichnung,PFAD);
  strcat_s(sDateibezeichnung,argv[1]);

  Eingabedatei.open(sDateibezeichnung, ios::binary);
	  if ( !Eingabedatei.is_open() )
	  {
		printf(&quot;Datei \&quot;%s\&quot; konnte nicht geoeffnet werden!\n&quot;,sDateibezeichnung );
		system(&quot;pause&quot;);
		exit(1);
	  }
  else printf(&quot;Datei \&quot;%s\&quot; wurde geoeffnet!\n&quot;,sDateibezeichnung );
  // länge der Datei bestimmen:
  Eingabedatei.seekg (0, ios::end);
  laenge = Eingabedatei.tellg();
  Eingabedatei.seekg (0, ios::beg);
  printf(&quot;Laenge der Datei \&quot;%s\&quot; wurde bestimmt!\n&quot;,sDateibezeichnung );
  // allocate memory:
  buffer = new char [laenge];
  printf(&quot;Speicher wurde reserviert!\n&quot;);
//----------------------------------------------------------------------
//  Einlesen der ASCII-codierten Werte, Wandlung und Speicherung
//  im float-Array E :
//----------------------------------------------------------------------
     if ( Eingabedatei.good() )
  {
	for(i=0;i&lt;=12;i++)
	{
	Eingabedatei.read (buffer,sizeof(float));
    E[i]=atof(buffer);
	}
    printf(&quot;Die ASCII-codierten E12-Werte wurden erfolgreich gelesen!\n&quot;
           &quot;Die ins float-Format umcodierten Werte sind:\n\n&quot;);
    for(i=0;i&lt;=12;i++)
	{
	printf(&quot;%3.1f &quot;,E[i]);
    }
  }
  else
    printf(&quot;Fehler beim Lesen aus  \&quot;%s\&quot;!\n&quot;,sDateibezeichnung);

  Eingabedatei.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/297105/float-aus-binary-datei-wandeln</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 14:33:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297105.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Dec 2011 12:36:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 12:36:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme nur 0,00 als ausgaben und weiß leider nicht was ich falsch mache.<br />
Es soll eine datei in binary ausgelesen werden in der die E reihen als text stehen. Diese sollen dann als float ausgegeben werden. Eigentlich gewandelt in die Datei zurück geschrieben werden, aber ich wäre froh sie erst mal auf dem bildschirm richtig zu sehen.</p>
<pre><code>using namespace std; 

int main ( int argc , char *argv[] )
{

  char sDateibezeichnung[256];
  ifstream Eingabedatei;
  float E[96];			// In diesem Array sollen die aus der Datei gelesenen E Werte gespeichert werden !
  int i, laenge;        
  char * buffer;

  if(argc!=2)
  {
	printf_s(&quot;Ungültige Eingabe&quot;);
	system(&quot;pause&quot;);
    exit(1);
  }
  strcpy_s (sDateibezeichnung,PFAD);
  strcat_s(sDateibezeichnung,argv[1]);

  Eingabedatei.open(sDateibezeichnung, ios::binary);
	  if ( !Eingabedatei.is_open() )
	  {
		printf(&quot;Datei \&quot;%s\&quot; konnte nicht geoeffnet werden!\n&quot;,sDateibezeichnung );
		system(&quot;pause&quot;);
		exit(1);
	  }
  else printf(&quot;Datei \&quot;%s\&quot; wurde geoeffnet!\n&quot;,sDateibezeichnung );
  // länge der Datei bestimmen:
  Eingabedatei.seekg (0, ios::end);
  laenge = Eingabedatei.tellg();
  Eingabedatei.seekg (0, ios::beg);
  printf(&quot;Laenge der Datei \&quot;%s\&quot; wurde bestimmt!\n&quot;,sDateibezeichnung );
  // allocate memory:
  buffer = new char [laenge];
  printf(&quot;Speicher wurde reserviert!\n&quot;);
//----------------------------------------------------------------------
//  Einlesen der ASCII-codierten Werte, Wandlung und Speicherung
//  im float-Array E :
//----------------------------------------------------------------------
     if ( Eingabedatei.good() )
  {
	for(i=0;i&lt;=12;i++)
	{
	Eingabedatei.read (buffer,sizeof(float));
    E[i]=atof(buffer);
	}
    printf(&quot;Die ASCII-codierten E12-Werte wurden erfolgreich gelesen!\n&quot;
           &quot;Die ins float-Format umcodierten Werte sind:\n\n&quot;);
    for(i=0;i&lt;=12;i++)
	{
	printf(&quot;%3.1f &quot;,E[i]);
    }
  }
  else
    printf(&quot;Fehler beim Lesen aus  \&quot;%s\&quot;!\n&quot;,sDateibezeichnung);

  Eingabedatei.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2158689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158689</guid><dc:creator><![CDATA[Adrick]]></dc:creator><pubDate>Mon, 19 Dec 2011 12:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 12:43:24 GMT]]></title><description><![CDATA[<p>Das ist weder C noch C++, sondern ein Mischmasch aus beidem. Erfahrungsgemäß gehen solche Probleme auf diesen Mischmasch zurück (und darauf, dass Mischmaschprogrammierer selten Ahnung haben, sonst würden sie wissen, welche Sprache sie machen). Was darf es also sein? C++ (von dem du ca. 5 Zeilen hast) oder C?</p>
<p>Außerdem kommt mir deine Aufgabenbeschreibung sehr merkwürdig vor: Die Zahlen liegen als Text vor, sollen aber binär gelesen werden? Das macht keinen Sinn!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158691</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 12:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 12:53:23 GMT]]></title><description><![CDATA[<p>Hurra,<br />
meine Befürchtungen werden bestättigt. Ich habe schon länger das gefühl das was uns da versucht wird beizubringen irgendwie weder fisch noch fleisch ist.</p>
<p>Also dann bitte in C++.<br />
Und die Aufgaben des Lehrers sind häufiger seltsam!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158695</guid><dc:creator><![CDATA[Adrick]]></dc:creator><pubDate>Mon, 19 Dec 2011 12:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 13:04:08 GMT]]></title><description><![CDATA[<p>Ok, kann ich dir zeigen, aber bitte lös erst einmal noch den Widerspruch zwischen ASCII, float, binary usw. Wie sieht die Datei aus, wenn du sie in einem Texteditor aufmachst? So in dieser Art:</p>
<pre><code>1.2345 2.3445
3.5465 6.68897
</code></pre>
<p>Oder doch eher so:</p>
<pre><code>&amp;# ``&amp;#;&amp;TT
!&amp;63;3&amp;6``o
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158698</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 13:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 13:07:15 GMT]]></title><description><![CDATA[<p>Ich danke schon einmal im vorraus. es sieht eher aus wie unten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158702</guid><dc:creator><![CDATA[Adrick]]></dc:creator><pubDate>Mon, 19 Dec 2011 13:07:15 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 13:19:38 GMT]]></title><description><![CDATA[<p>Auszug aus E6: €? À?ÍÌ@33S@ff–@š<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/2122.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--trade_mark"
      title=":trade_mark:"
      alt="™"
    />Ù@</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158710</guid><dc:creator><![CDATA[Adrick]]></dc:creator><pubDate>Mon, 19 Dec 2011 13:19:38 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 13:29:46 GMT]]></title><description><![CDATA[<p>Wenn das Binärformat passt, ist das eigentlich recht einfach:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;cstdlib&gt; //EXIT_FAILURE

int main(int argc , char *argv[])
{
    if(argc != 2)
    {
        std::cout &lt;&lt; &quot;invalid argument&quot; &lt;&lt; std::endl;
        return EXIT_FAILURE;
    }

    std::ifstream reader(argv[1], std::ios::binary);
    if(!reader)
    {
        std::cout &lt;&lt; &quot;open file error&quot; &lt;&lt; std::endl;
        return EXIT_FAILURE;
    }

    float current_value;
    char read_buffer[sizeof(current_value)];    
    while(reader.read(read_buffer, sizeof(read_buffer)))
    {
        current_value = *reinterpret_cast&lt;float*&gt;(read_buffer);
        std::cout &lt;&lt; current_value &lt;&lt; std::endl;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2158719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158719</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 19 Dec 2011 13:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 13:38:39 GMT]]></title><description><![CDATA[<p>Hier mit etwas mehr Tantam drumherum. Das Programm ist fast 100% äquivalent zu dem was dein Programm machen soll, inklusive aller Fehlermeldungen und dem komischen hardcodierten Pfad. Um in eine Datei auszugeben, tauscht du cout gegen einen ofstream deiner Wahl:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;

using namespace std;

const string PATH = &quot;./&quot;;

int main(int argc , char *argv[])
{
  if(argc!=2)
  {
    cout &lt;&lt; &quot;Ungültige Eingabe.\n&quot;;
    return 1;
  } 

  string filename = PATH + argv[1];
  ifstream file(filename.c_str(), ios::binary);
  if (!file)
    {
      cout &lt;&lt; &quot;Datei \&quot;&quot; &lt;&lt; filename &lt;&lt; &quot;\&quot; konnte nicht geöffnet werden.\n&quot;;
      return 1;
    }

  // Get file length
  file.seekg (0, ios::end);
  streamsize length = file.tellg() / sizeof(float);
  file.seekg(0, ios::beg);
  cout &lt;&lt; &quot;Länge der Datei \&quot;&quot; &lt;&lt; filename &lt;&lt; &quot;\&quot; entspricht &quot; &lt;&lt; length &lt;&lt; &quot; floats.\n&quot;;

  // Read blockfile into float-array.
  vector&lt;float&gt; data(length);
  cout &lt;&lt; &quot;Speicher wurde reserviert.\n&quot;;
  file.read(reinterpret_cast&lt;char*&gt;(&amp;data[0]), 
            data.size()*sizeof(float)); 
  if (!file)
    {
      cout &lt;&lt; &quot;Fehler beim Lesen aus Datei \&quot;&quot; &lt;&lt; filename &lt;&lt; &quot;\&quot;\n&quot;;
      return 1;
    }

  cout &lt;&lt; &quot;Die ASCII-codierten E12-Werte wurden erfolgreich gelesen!\n&quot;
          &quot;Die ins float-Format umcodierten Werte sind:\n\n&quot;;
  for (size_t i = 0; i &lt; data.size(); ++i)
    cout &lt;&lt; data[i] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2158723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158723</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 13:38:39 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 15:21:40 GMT]]></title><description><![CDATA[<p>Wow! SeppJ ich glaub ich hab mehr zum nachdenken in diesen paar Zeilen, als aus den Unterrichtstunden der letzten Monate.</p>
<p>Ich bedanke mich!</p>
<p>sorg das .c_str() das es einen Stringbegrenzer hinter filename gibt?</p>
<p>Das ist der klare beweis wir haben die ganze Zeit C gehabt mit lustigen einspritzern wie klassen.</p>
<p>Da ich nicht dumm sterben möchte, gibt es ein empfelenswertes Einsteigerbuch zu c++?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158789</guid><dc:creator><![CDATA[Adrick]]></dc:creator><pubDate>Mon, 19 Dec 2011 15:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Float aus binary Datei wandeln on Mon, 19 Dec 2011 15:58:30 GMT]]></title><description><![CDATA[<p>Adrick schrieb:</p>
<blockquote>
<p>sorg das .c_str() das es einen Stringbegrenzer hinter filename gibt?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Da ich nicht dumm sterben möchte, gibt es ein empfelenswertes Einsteigerbuch zu c++?</p>
</blockquote>
<p><a href="http://www.c-plusplus.net/forum/251551" rel="nofollow">http://www.c-plusplus.net/forum/251551</a><br />
Thinking gibt es auch als freies Ebook.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2158812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2158812</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Dec 2011 15:58:30 GMT</pubDate></item></channel></rss>