<?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[Eingabe und speichern von Daten]]></title><description><![CDATA[<p>Hallo,<br />
bisher habe ich mit dem folgenden String, Input für einfache Datenbanken über die Textkonsole aus C++ auf Diskette gespeichert.</p>
<p>//<br />
void neuer()<br />
{<br />
char ctaste;<br />
char einstring[80],*endptr;<br />
struct compact<br />
{<br />
char cname[10], cvname[20];<br />
}comp[10];</p>
<p>FILE*stream;<br />
stream=fopen(&quot;c:\\neu.dat&quot;,&quot;rb&quot;);<br />
fread(&amp;comp,sizeof(comp),1,stream);<br />
fclose(stream);<br />
clrscr();<br />
cout&lt;&lt;&quot; hallo, wollen Sie einen neuen Eintrag vornehmen? Y/N&quot;&lt;&lt;endl;<br />
cin&gt;&gt;ctaste;<br />
...</p>
<p>//<br />
Ich wollte Daten direkt auf C speichern mit der folgenden Änderung (siehe Änderung) Leider ohne Erfolg</p>
<p>FILE*stream;<br />
stream=fopen(&quot;C:\Eigene Dateien:\\neu.dat&quot;,&quot;rb(bzw. rw)&quot;);<br />
fread(&amp;comp,sizeof(comp),1,stream);<br />
fclose(stream);</p>
<p>Was muß ich tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141833/eingabe-und-speichern-von-daten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 21:56:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141833.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Mar 2006 14:03:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Sat, 25 Mar 2006 14:03:36 GMT]]></title><description><![CDATA[<p>Hallo,<br />
bisher habe ich mit dem folgenden String, Input für einfache Datenbanken über die Textkonsole aus C++ auf Diskette gespeichert.</p>
<p>//<br />
void neuer()<br />
{<br />
char ctaste;<br />
char einstring[80],*endptr;<br />
struct compact<br />
{<br />
char cname[10], cvname[20];<br />
}comp[10];</p>
<p>FILE*stream;<br />
stream=fopen(&quot;c:\\neu.dat&quot;,&quot;rb&quot;);<br />
fread(&amp;comp,sizeof(comp),1,stream);<br />
fclose(stream);<br />
clrscr();<br />
cout&lt;&lt;&quot; hallo, wollen Sie einen neuen Eintrag vornehmen? Y/N&quot;&lt;&lt;endl;<br />
cin&gt;&gt;ctaste;<br />
...</p>
<p>//<br />
Ich wollte Daten direkt auf C speichern mit der folgenden Änderung (siehe Änderung) Leider ohne Erfolg</p>
<p>FILE*stream;<br />
stream=fopen(&quot;C:\Eigene Dateien:\\neu.dat&quot;,&quot;rb(bzw. rw)&quot;);<br />
fread(&amp;comp,sizeof(comp),1,stream);<br />
fclose(stream);</p>
<p>Was muß ich tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023712</guid><dc:creator><![CDATA[FrankS]]></dc:creator><pubDate>Sat, 25 Mar 2006 14:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Sat, 25 Mar 2006 14:08:48 GMT]]></title><description><![CDATA[<p>Mit dem Code musst du im ANSI-C Forum fragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023716</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sat, 25 Mar 2006 14:08:48 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Sat, 25 Mar 2006 14:10:37 GMT]]></title><description><![CDATA[<p>Zum Schreiben auf Disk verwendest du nicht fread(), sondern fwrite() <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="😉"
    /> (und benötigst bei deinem fopen()-Aufruf &quot;wb&quot; oder &quot;ab&quot; (letzteres hängt alles ans Ende der alten Datei an)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023717</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 25 Mar 2006 14:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Sun, 26 Mar 2006 12:37:26 GMT]]></title><description><![CDATA[<p>Aber muß ich dem Programm den Pfad nicht vorher deklarieren, so wie ich das beschrieben habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024118</guid><dc:creator><![CDATA[FrankS]]></dc:creator><pubDate>Sun, 26 Mar 2006 12:37:26 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Mon, 27 Mar 2006 06:19:51 GMT]]></title><description><![CDATA[<p>Ja, mußt du - da habe ich auch nichts dagegen gesagt:</p>
<pre><code class="language-cpp">stream=fopen(dateiname,&quot;wb&quot;);//öffnet zum binären Schreiben
//oder
stream=fopen(dateiname,&quot;ab&quot;);//öffnet binär im Append-Modus

fwrite(&amp;comp,sizeof(comp),1,stream);//schreibt die Daten
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1024531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024531</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Mar 2006 06:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Mon, 27 Mar 2006 07:49:39 GMT]]></title><description><![CDATA[<p>Schau Dir den Ursprungspfad an, merke dass dort der Backslash verdoppelt steht (\), frag Dich kurz warum das so ist (im Zweifel denke &quot;ah, es wird schon einen Sinn haben&quot;) und versuche in Deiner Ergänzung auch zwei \ zu benutzen <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>
<p>Achja: Und der Ordner &quot;Eigene Dateien&quot; hat auch keinen Doppelpunkt am Ende oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024575</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 27 Mar 2006 07:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Thu, 30 Mar 2006 19:18:21 GMT]]></title><description><![CDATA[<p>Okay das soweit geklappt.<br />
nur wenn ich das ganze loeschen möchte (was C++ auch macht) schreibt er mir trotzdem irgendwelche undefinierbare Zeichen in den einzelnen Spalten rein.<br />
obwohl soweit alles okay ist, oder</p>
<p>void loescheneinzeln()<br />
{</p>
<p>struct compact<br />
{<br />
char cname[10], cvname[20];<br />
}com[10];<br />
int ix;<br />
FILE*stream;<br />
stream=fopen(&quot;C:\\neu.dat&quot;,&quot;rb&quot;);<br />
fread(&amp;com,sizeof(com),1,stream);<br />
fclose(stream);<br />
clrscr();<br />
cout&lt;&lt;&quot;index eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt;ix;<br />
cout&lt;&lt;&quot;loesche Datensatz&quot;&lt;&lt;endl;<br />
com[ix].cname[0]='0';<br />
com[ix].cvname[0]='0';<br />
stream=fopen(&quot;C:\\neu.dat&quot;,&quot;wb&quot;);<br />
fwrite(&amp;com,sizeof(com),1,stream);<br />
fclose(stream);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1027469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027469</guid><dc:creator><![CDATA[FrankS]]></dc:creator><pubDate>Thu, 30 Mar 2006 19:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to Eingabe und speichern von Daten on Thu, 30 Mar 2006 19:25:12 GMT]]></title><description><![CDATA[<p>...und benutz doch bitte bitte [ cpp] Tags <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>Mit fwrite schreibst Du nicht die Strings einzeln, sondern die komplette Struktur. Also immer mindestens 30 Byte. Wenn Du darin nullterminierte Strings speicherst ist logischerweise nach dem Nullbyte das in der Datei, was vorher drin war (sprich Speichermüll).</p>
<p>Achja, wenn Du den String löschen willst, möchtest Du ihm höchstwahrscheinlich nicht das Zeichen &quot;0&quot; zuweisen, sondern das Nullbyte:</p>
<pre><code class="language-cpp">com[ix].cname[0]=0;
/* oder */
com[ix].cname[0]='\0';
</code></pre>
<p>Aber das löst o.a. &quot;Problem&quot; mit fwrite nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1027475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027475</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 30 Mar 2006 19:25:12 GMT</pubDate></item></channel></rss>