<?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[Versuche einen String in einen struct zu schreiben]]></title><description><![CDATA[<p>Hi bin neu hier und habe auch erst angefangen zu programmieren also entschuldigt meine Unbeholfenheit.</p>
<p>Ich habe eine Textdatei in der sich in jeder Zeile genau gleichviele Zeichen enthalten sind. Diese Textdatei soll ich zeilenweise auslesen, das funktioniert auch schon. Nun soll ich diese Zeile aber in ein struct bringen, der mehrere elemente aus untersdchiedlich großen arrays enthält. Jetzt wollte ich mal wissen ab es eine Möglichkeit gibt dies zu tun, ohne dass jedes Element in dem struct extra angesprochen wurde. Bis jetzt mach ich es mit strncopy und sag dann ab welchem Zeichen gelesen werden soll und wieviele Zeichen eingelesen werden sollen.</p>
<p>Wäre über eine Antwort sehr glücklich.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137104/versuche-einen-string-in-einen-struct-zu-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 04:52:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137104.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Feb 2006 12:37:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 12:37:16 GMT]]></title><description><![CDATA[<p>Hi bin neu hier und habe auch erst angefangen zu programmieren also entschuldigt meine Unbeholfenheit.</p>
<p>Ich habe eine Textdatei in der sich in jeder Zeile genau gleichviele Zeichen enthalten sind. Diese Textdatei soll ich zeilenweise auslesen, das funktioniert auch schon. Nun soll ich diese Zeile aber in ein struct bringen, der mehrere elemente aus untersdchiedlich großen arrays enthält. Jetzt wollte ich mal wissen ab es eine Möglichkeit gibt dies zu tun, ohne dass jedes Element in dem struct extra angesprochen wurde. Bis jetzt mach ich es mit strncopy und sag dann ab welchem Zeichen gelesen werden soll und wieviele Zeichen eingelesen werden sollen.</p>
<p>Wäre über eine Antwort sehr glücklich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994765</guid><dc:creator><![CDATA[engele]]></dc:creator><pubDate>Wed, 15 Feb 2006 12:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 12:46:11 GMT]]></title><description><![CDATA[<p>Lass das doch deine struct (class) machen.<br />
Baust du beispielsweise eine Methode &quot;loadfromfile(dateiname)&quot; und diese füllt dann die Membervariablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994771</guid><dc:creator><![CDATA[rama]]></dc:creator><pubDate>Wed, 15 Feb 2006 12:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 12:52:53 GMT]]></title><description><![CDATA[<p>Hi rama,</p>
<p>habe absult keine Ahnung wie du das meinst, musst du mir bitte genauer erklären, bin blutiger anfänger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994781</guid><dc:creator><![CDATA[engele]]></dc:creator><pubDate>Wed, 15 Feb 2006 12:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:00:02 GMT]]></title><description><![CDATA[<p>Das hier entspreicht zwar nicht exakt dem, was rama gesagt hat, dürfte aber besser mit deinen Vorbedingungen zusammenarbeiten:</p>
<p>Du gibst deiner Struktur eine Methode (z.B.) InitFromString(const string&amp; data), die die übergebene Textzeile auswertet und auf die einzelnen Struct-Elemente verteilt. Dann mußt du diese Methode nur noch mit dem Text aufrufen, den du schon eingelesen hast.</p>
<p>(PS: Wenn die Daten sowieso schon binär codiert in deiner Datei stehen, könntest du auch fstream::read() bzw. fread() verwenden, um deinen struct damit zu füllen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994790</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:03:27 GMT]]></title><description><![CDATA[<p>Zeig doch erstmal wie deine structur und deine Daten aus der Datei so grob aussehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994793</guid><dc:creator><![CDATA[rama]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:16:29 GMT]]></title><description><![CDATA[<p>Also ich habe eine Zeile mit 457 Zeichen + \0, diese enthält enthält Zahlenkombination, viele Leerzeichen, Namen etc.<br />
Beispiel:<br />
1 010001260820570Diakoniekrankenhaus Speyerer Str. 91-93 68163 Mannheim G 1356 0</p>
<p>steht alles in einer Zeile.<br />
Diese soll wie folgt zerlegt werden.<br />
erst 40 Zeichen, dann 12 Zeichen, 40 Zeichen, 6 Zeichen, 9 Zeichen, 112 Zeichen, 50 Zeichen, 10 Zeichen, 50 Zeichen, 5 Zeichen, 1 Zeichen, 5 Zeichen, 5 Zeichen, 112 Zeichen.</p>
<p>ich habe also ein Struct angelegt in dem für jede Zeichen länge ein Array enthalten ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994815</guid><dc:creator><![CDATA[engele]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:30:27 GMT]]></title><description><![CDATA[<p>Du lädst das doch in einen string (egal ob nun AnsiString oder std::string).<br />
Diesen string zerlegst du dann in deiner Methode (Stichwort substr) und weist den Membervariablen diesen zerlegten string zu.<br />
ps:Bischen Code für deinen Ansatzwär nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994835</guid><dc:creator><![CDATA[rama]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:32:56 GMT]]></title><description><![CDATA[<blockquote>
<p>ich habe also ein Struct angelegt in dem für jede Zeichen länge ein Array enthalten ist.</p>
</blockquote>
<p>Wenn ich das so lese beschleicht mich das gefühl, das du anstatt von string ein char Array verwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994840</guid><dc:creator><![CDATA[rama]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:39:08 GMT]]></title><description><![CDATA[<p>Da hast du wohl recht mir dem char array.<br />
Mein Quellcode sieht im Moment folgender maßen aus:</p>
<p>#define ZEILENLAENGE 459</p>
<p>void main(void){<br />
struct Krankenhaeuser {<br />
char PK[41];<br />
char IMPORT[13];<br />
char PKV_PK[41];<br />
char KZ[7];<br />
char IK_NR[10];<br />
char NAME[113];<br />
char STRASSE_NR[51];<br />
char PLZ[11];<br />
char ORT[51];<br />
char MBKK[6];<br />
char BPFLV[2];<br />
char BETTEN_GESAMT[6];<br />
char BETTEN_BELEGT[6];<br />
char NAME2[113];<br />
char Satzende[1];<br />
} Krankenhaus[20]={0};</p>
<p>char puffer[ZEILENLAENGE] = {0};<br />
FILE *Datei;</p>
<p>int i = 0;<br />
Datei = fopen(&quot;U:\\Versuch.txt&quot;,&quot;r&quot;);</p>
<p>while(fgets(puffer,ZEILENLAENGE,Datei) != NULL){</p>
<p>strncpy(Krankenhaus[i].PK,puffer,40);<br />
strncpy(Krankenhaus[i].IMPORT,puffer+40,12);<br />
strncpy(Krankenhaus[i].PKV_PK,puffer+52,40);<br />
strncpy(Krankenhaus[i].KZ,puffer+92,6);<br />
strncpy(Krankenhaus[i].IK_NR,puffer+98,9);<br />
strncpy(Krankenhaus[i].NAME,puffer+107,112);<br />
strncpy(Krankenhaus[i].STRASSE_NR,puffer+219,50);<br />
strncpy(Krankenhaus[i].PLZ,puffer+269,10);<br />
strncpy(Krankenhaus[i].ORT,puffer+279,50);<br />
strncpy(Krankenhaus[i].MBKK,puffer+329,5);<br />
strncpy(Krankenhaus[i].BPFLV,puffer+334,1);<br />
strncpy(Krankenhaus[i].BETTEN_GESAMT,puffer+335,5);<br />
strncpy(Krankenhaus[i].BETTEN_BELEGT,puffer+340, 5);<br />
strncpy(Krankenhaus[i].NAME2,puffer+345,112);</p>
<p>i++;<br />
}<br />
}</p>
<p>und das möchte ich etwas einfacher haben. Bin auch für jeden neuen Ansatz dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994850</guid><dc:creator><![CDATA[engele]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 13:55:42 GMT]]></title><description><![CDATA[<p>engele schrieb:</p>
<blockquote>
<p>struct Krankenhaeuser {<br />
...<br />
} Krankenhaus[20]={0};</p>
<p>char puffer[ZEILENLAENGE] = {0};<br />
FILE *Datei;</p>
<p>int i = 0;<br />
Datei = fopen(&quot;U:\\Versuch.txt&quot;,&quot;r&quot;);</p>
<p>while(fgets(puffer,ZEILENLAENGE,Datei) != NULL){</p>
<p>...// Looki nach unten <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>i++;<br />
}<br />
}</p>
</blockquote>
<pre><code class="language-cpp">memcpy(&amp;Krankenhaus[i],puffer,sizeof(Krankenhaeuser));
</code></pre>
<p>Tip noch: ZEILENLAENGE kannst du auch durch sizeof(Krankenhaeuser)+1 ersetzen, weil du ja immer ein NullByte als trennzeichen hast, zumindest habe ich das so verstanden.</p>
<p><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/994873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994873</guid><dc:creator><![CDATA[Burkhi]]></dc:creator><pubDate>Wed, 15 Feb 2006 13:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Versuche einen String in einen struct zu schreiben on Wed, 15 Feb 2006 14:07:16 GMT]]></title><description><![CDATA[<p>Danke Burkhi, du warst meine Rettung<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/994891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994891</guid><dc:creator><![CDATA[engele]]></dc:creator><pubDate>Wed, 15 Feb 2006 14:07:16 GMT</pubDate></item></channel></rss>