<?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[double in einen Stream schreiben ...]]></title><description><![CDATA[<p>Hi, seit Jahren fülle ich meine Dateien so:</p>
<pre><code class="language-cpp">ofstream ofs(&quot;Test.dat&quot;);
double d=500;
ofs.write(d,sizeof(double));
</code></pre>
<p>hat immer geklappt, bis ich auf den gcc 3.2 umgestiegen bin, der sagt mir:</p>
<p>test.cpp:60: no matching function for call to `std::basic_ofstream&lt;char,<br />
std::char_traits&lt;char&gt; &gt;::write(double&amp;, unsigned int)'<br />
/usr/include/g++/bits/ostream.tcc:387: candidates are:<br />
std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::basic_ostream&lt;_CharT,<br />
_Traits&gt;::write(const _CharT*, int) [with _CharT = char, _Traits =<br />
std::char_traits&lt;char&gt;]</p>
<p>Dazu zwei Fragen:<br />
1. Was soll das? Wieso klappt das nicht mehr?<br />
2. Wie kriege ich es wieder hin?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/60752/double-in-einen-stream-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 02:17:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/60752.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Jan 2004 14:45:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to double in einen Stream schreiben ... on Thu, 08 Jan 2004 14:45:22 GMT]]></title><description><![CDATA[<p>Hi, seit Jahren fülle ich meine Dateien so:</p>
<pre><code class="language-cpp">ofstream ofs(&quot;Test.dat&quot;);
double d=500;
ofs.write(d,sizeof(double));
</code></pre>
<p>hat immer geklappt, bis ich auf den gcc 3.2 umgestiegen bin, der sagt mir:</p>
<p>test.cpp:60: no matching function for call to `std::basic_ofstream&lt;char,<br />
std::char_traits&lt;char&gt; &gt;::write(double&amp;, unsigned int)'<br />
/usr/include/g++/bits/ostream.tcc:387: candidates are:<br />
std::basic_ostream&lt;_CharT, _Traits&gt;&amp; std::basic_ostream&lt;_CharT,<br />
_Traits&gt;::write(const _CharT*, int) [with _CharT = char, _Traits =<br />
std::char_traits&lt;char&gt;]</p>
<p>Dazu zwei Fragen:<br />
1. Was soll das? Wieso klappt das nicht mehr?<br />
2. Wie kriege ich es wieder hin?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/431661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/431661</guid><dc:creator><![CDATA[libs]]></dc:creator><pubDate>Thu, 08 Jan 2004 14:45:22 GMT</pubDate></item><item><title><![CDATA[Reply to double in einen Stream schreiben ... on Thu, 08 Jan 2004 14:51:36 GMT]]></title><description><![CDATA[<blockquote>
<p>Hi, seit Jahren fülle ich meine Dateien so</p>
</blockquote>
<p>Das würde mich sehr wundern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>ostream::write erwartet als erstes Argument einen Zeiger auf char (weil ostream == basic_ostream&lt;<strong>char</strong>&gt;). Also kannst du da schon gar keinen double übergeben. Mit etwas Augenzwinkern könnte man &amp;d, also einen Zeiger auf double durchgehen lassen. Allerdings läßt das Typsystem das nicht zu. Lösung: reinterpret_cast&lt;char*&gt;(&amp;d) oder C-Style-Cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/431667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/431667</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 08 Jan 2004 14:51:36 GMT</pubDate></item><item><title><![CDATA[Reply to double in einen Stream schreiben ... on Thu, 08 Jan 2004 16:26:34 GMT]]></title><description><![CDATA[<p>Ok, eigentlich so:</p>
<pre><code class="language-cpp">ofstream ofs(&quot;Test.dat&quot;);
double d=500;
ofs.write(&amp;d,sizeof(double));
</code></pre>
<p>Das ging aber bei älteren gcc's ohne Probleme durch ... gab nicht mal eine Warnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/431748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/431748</guid><dc:creator><![CDATA[LIBS]]></dc:creator><pubDate>Thu, 08 Jan 2004 16:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to double in einen Stream schreiben ... on Thu, 08 Jan 2004 16:35:04 GMT]]></title><description><![CDATA[<p>Die älteren GCCs (vor 3.0) waren bei weitem nicht standardkonform, und haben u.a. eine ältere, nicht konforme Implementierung der IOStreams-Library. Die Klasse ostream hat dort mehrere write-Memberfunktionen, und eine davon übernimmt einen void-Pointer.<br />
Ab 3.0 ist ostream, wie vom Standard gefordert, ein typedef auf basic_ostream&lt;char&gt;, und hat auch nur noch eine write-Funktion, deren erstes Argument eben ein const char * sein muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/431754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/431754</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 08 Jan 2004 16:35:04 GMT</pubDate></item></channel></rss>