<?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[fwrite]]></title><description><![CDATA[<p>Hallo, ich hab ein Problem mit dem abspeichern eines structs.<br />
Im Unterprogramm speichern habe ich es mit fwrite versucht, ich hab als ersten Parameter alles ausprobiert, aber es wurde nie das richtige in die Datei geschrieben.<br />
Auf diese Variante</p>
<pre><code class="language-cpp">for(i=0;i&lt;3;i++)
{
    fwrite(&amp;puffer[i],sizeof(char),1,datei_speichern);
    fprintf(datei_speichern,&quot;,&quot;);
    fwrite(&amp;puffer[i],sizeof(int),1,datei_speichern);
    fprintf(datei_speichern,&quot;;&quot;);
}
</code></pre>
<p>wird C,CXVI;C,CXXV;C,CVXX in die Datei geschrieben.</p>
<p>Wie krieg es hin, dass die Buchstabenfolge und die dezimalzahl in die Datei geschrieben wird?</p>
<p>Wenn ich fprintf verwende funktioniert es. Aber es müsste doch auch mit fwrite machbar sein, oder nicht?</p>
<pre><code class="language-cpp">#include&lt;stdlib.h&gt;
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;

struct daten
{
	char roemisch[5];

	int dezimal;
};

int speichern(struct daten *puffer)
{

	int i;

	FILE *datei_speichern;

	if((datei_speichern=fopen(&quot;datensaetze.txt&quot;,&quot;w&quot;))!=NULL)
	{
	     for(i=0;i&lt;3;i++)
	     {
	         fwrite(&amp;puffer[i],sizeof(char),1,datei_speichern);
		fprintf(datei_speichern,&quot;,&quot;);
		fwrite(&amp;puffer[i],sizeof(int),1,datei_speichern);
		fprintf(datei_speichern,&quot;;&quot;);

		printf(&quot;%s&quot;,puffer[i].roemisch);
	         printf(&quot;%i&quot;,puffer[i].dezimal);
	     } 

	}
	else
	{
		printf(&quot;Datei konnte nicht geöffnet werden&quot;);

	}

	fclose(datei_speichern);

	return 0;

}

int main()
{

	struct daten datensaetze[3];

	strcpy(datensaetze[0].roemisch,&quot;CXVI&quot;);
	datensaetze[0].dezimal=119;

	strcpy(datensaetze[1].roemisch,&quot;CXXV&quot;);
	datensaetze[1].dezimal=103;

	strcpy(datensaetze[2].roemisch,&quot;CVXX&quot;);
	datensaetze[2].dezimal=147;

         struct daten *zeiger;

	zeiger=datensaetze;

         speichern(zeiger);

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/182800/fwrite</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 01:30:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182800.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 May 2007 12:57:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fwrite on Tue, 29 May 2007 12:57:20 GMT]]></title><description><![CDATA[<p>Hallo, ich hab ein Problem mit dem abspeichern eines structs.<br />
Im Unterprogramm speichern habe ich es mit fwrite versucht, ich hab als ersten Parameter alles ausprobiert, aber es wurde nie das richtige in die Datei geschrieben.<br />
Auf diese Variante</p>
<pre><code class="language-cpp">for(i=0;i&lt;3;i++)
{
    fwrite(&amp;puffer[i],sizeof(char),1,datei_speichern);
    fprintf(datei_speichern,&quot;,&quot;);
    fwrite(&amp;puffer[i],sizeof(int),1,datei_speichern);
    fprintf(datei_speichern,&quot;;&quot;);
}
</code></pre>
<p>wird C,CXVI;C,CXXV;C,CVXX in die Datei geschrieben.</p>
<p>Wie krieg es hin, dass die Buchstabenfolge und die dezimalzahl in die Datei geschrieben wird?</p>
<p>Wenn ich fprintf verwende funktioniert es. Aber es müsste doch auch mit fwrite machbar sein, oder nicht?</p>
<pre><code class="language-cpp">#include&lt;stdlib.h&gt;
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;

struct daten
{
	char roemisch[5];

	int dezimal;
};

int speichern(struct daten *puffer)
{

	int i;

	FILE *datei_speichern;

	if((datei_speichern=fopen(&quot;datensaetze.txt&quot;,&quot;w&quot;))!=NULL)
	{
	     for(i=0;i&lt;3;i++)
	     {
	         fwrite(&amp;puffer[i],sizeof(char),1,datei_speichern);
		fprintf(datei_speichern,&quot;,&quot;);
		fwrite(&amp;puffer[i],sizeof(int),1,datei_speichern);
		fprintf(datei_speichern,&quot;;&quot;);

		printf(&quot;%s&quot;,puffer[i].roemisch);
	         printf(&quot;%i&quot;,puffer[i].dezimal);
	     } 

	}
	else
	{
		printf(&quot;Datei konnte nicht geöffnet werden&quot;);

	}

	fclose(datei_speichern);

	return 0;

}

int main()
{

	struct daten datensaetze[3];

	strcpy(datensaetze[0].roemisch,&quot;CXVI&quot;);
	datensaetze[0].dezimal=119;

	strcpy(datensaetze[1].roemisch,&quot;CXXV&quot;);
	datensaetze[1].dezimal=103;

	strcpy(datensaetze[2].roemisch,&quot;CVXX&quot;);
	datensaetze[2].dezimal=147;

         struct daten *zeiger;

	zeiger=datensaetze;

         speichern(zeiger);

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1294450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294450</guid><dc:creator><![CDATA[Reptile100]]></dc:creator><pubDate>Tue, 29 May 2007 12:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Tue, 29 May 2007 13:33:54 GMT]]></title><description><![CDATA[<p>Wieso nimmst du nicht fprintf() - fprintf(datei,&quot;%d,%s;&quot;,puffer[i].dezimal,puffer[i].roemisch);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294474</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 29 May 2007 13:33:54 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Tue, 29 May 2007 13:45:06 GMT]]></title><description><![CDATA[<p>Das hat funktioniert, aber mein Professor möchte, dass ich fwrite benutze.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294484</guid><dc:creator><![CDATA[Reptile100]]></dc:creator><pubDate>Tue, 29 May 2007 13:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Wed, 30 May 2007 06:20:38 GMT]]></title><description><![CDATA[<p>Dann mußt du die richtigen Größenangaben und Positionen verwenden:</p>
<pre><code class="language-cpp">fwrite(&amp;(puffer[i].dezimal),sizeof(int),1,datei);//schreibe int-Wert (binär)
fwrite(puffer[i].roemisch,5,1,datei);//schreibe String-Darstellung

fwrite(puffer+i,sizeof(struct daten),1,datei);//schreibe komplettes Feld
</code></pre>
<p>(nur am Rande: wenn du den int-Wert per fwrite schreibst, wirst du nichts menschen-lesbares herausbekommen)</p>
<p>PS: Übrigens - C ist eine Etage höher <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1294920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294920</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 30 May 2007 06:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Wed, 30 May 2007 08:33:14 GMT]]></title><description><![CDATA[<p>Danke - das hat funktioniert.</p>
<p>Wie kommt es denn, dass der Integer-Wert mit fwrite nicht lesbar in die Datei geschrieben wird?</p>
<p>Man hat mir gesagt, dass fprintf in C++ nicht überall funktionieren würde.<br />
Worin besteht denn der Unterschied zwischen fprintf und fwrite?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294992</guid><dc:creator><![CDATA[Reptile100]]></dc:creator><pubDate>Wed, 30 May 2007 08:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Wed, 30 May 2007 08:35:49 GMT]]></title><description><![CDATA[<p>fprintf schreibt einen String (Zeichenkette) in die Datei, fwrite schreibt die rohen Daten. D.h. integer Werte werden bei fprintf in einen String umgewandelt, bei fwrite eben nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294994</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 30 May 2007 08:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to fwrite on Wed, 30 May 2007 08:49:55 GMT]]></title><description><![CDATA[<p>Danke - jetzt hab ichs verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295006</guid><dc:creator><![CDATA[Reptile100]]></dc:creator><pubDate>Wed, 30 May 2007 08:49:55 GMT</pubDate></item></channel></rss>