<?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[Dateien einlesen und in Klasse speichern - Problem!]]></title><description><![CDATA[<p>Hi.<br />
Ich will mir ein kleines Programm schreiben, dass mir Daten aus ganz normalen *.txt Dateien einliest und dann in einer Klasse speichert. Soweit - sogut. Bei einem Dateipaar (es gehören immer zwei zusammen), schaff ich das noch, aber bei zwei geht das irgendwie nicht mehr so recht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Hier mal der nötige Code:</p>
<pre><code>const int COUNTLEKTION = 40; // Globale Variablen
    int COUNT;
    Nomen *nNomen_1;

bool Datei_Einlesen_Nomen(int iStart, int iEnde) //iStart und iEnde markieren die Start / Endlektion
{
    for(int i=0;i&lt;COUNTLEKTION;i++) { //COUNTLEKTION ist die Gesamtanzahl der Lektionen
        if((i+1) &gt;= iStart &amp;&amp; (i+1) &lt;= iEnde) { //Code soll nur ausgeführt werden, wenn i zwischen dem Start und Endwert liegt
            // Einlesen der _info
            ifstream in_1, in_2, in_3;
            int COUNT_ALL_nomen_info;
            int COUNT_ALL_nomen_1;
            int COUNT_ALL_nomen_2;
            int *nomen_info;
            int *nomen_1;

            COUNT_ALL_nomen_info = getLines(FLektion_nomen_info[i]); // zählt die Zeilen der nötigen Lektion (ebenso unten)
            COUNT_ALL_nomen_1 = getLines(FLektion_nomen_1[i]);
            COUNT_ALL_nomen_2 = getLines(FLektion_nomen_2[i]);

            in_1.open(FLektion_nomen_info[i].c_str(), ios_base::in);
            if(!in_1)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_info[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest die nomen_info ein

            nomen_info = new int [COUNT_ALL_nomen_info];

            for(int l=0; l&lt;COUNT_ALL_nomen_info;l++) {
                string buffer[COUNT_ALL_nomen_info];

                getline(in_1, buffer[l]);
                stringstream sstr(buffer[l]);
                sstr &gt;&gt; nomen_info[l];
            }
            in_1.close();

            in_2.open(FLektion_nomen_1[i].c_str(), ios_base::in);
            if(!in_2)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_1[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest nomen_1 ein

            nomen_1 = new int [COUNT_ALL_nomen_1];

            for(int l=0; i&lt;COUNT_ALL_nomen_1;l++) {
                string buffer[COUNT_ALL_nomen_1];

                getline(in_2, buffer[l]);
                stringstream sstr(buffer[l]);
                sstr &gt;&gt; nomen_1[l];
            }
            in_2.close();

            in_3.open(FLektion_nomen_2[i].c_str(), ios_base::in);
            if(!in_3)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_2[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest nomen_2 ein

            string nomen_2[COUNT_ALL_nomen_2];

            for(int l=0;l&lt;COUNT_ALL_nomen_2;l++) {
                getline(in_3, nomen_2[l]);
            }
            in_3.close();

            if(i == iStart) { //wenn die Lektion der Start-Lektion entspricht, dann dies hier ausführen

                nNomen = new Nomen [COUNT]; //COUNT wird mit dem entsprechenden Wert schon in main() definiert

                int j = 0, k=0;
                // Daten werden in der Klasse gespeichert

                for(int l=0;i&lt;nomen_info[0];l++) { //nomen_info[0] trägt die Zeilenanzahl von nomen_1/2 der gesuchten Lektion in sich - soviele Klassenelemente werden benötigt
                    nNomen_1[l].erzeuge_DeklTyp(nomen_1[j]);
                    j++;
                    nNomen_1[l].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[l].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int l=0;l&lt;nomen_info[0];i++) {
                    nNomen_1[l].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
            else { //wenn i nicht den Startwert entspricht, muss nNomen_1 nichtmehr definiert werden
                int tmp = COUNT - nomen_info[0];
                int j = 0, k = 0;

                for(int i=tmp;i&lt;COUNT;i++) { //i geht erst bei tmp los, weil die vorherigen nNomen_1[i] schon belegt sind
                    nNomen_1[i].erzeuge_DeklTyp(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int i=tmp;i&lt;COUNT;i++) {
                    nNomen_1[i].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
        }
    }
return true;
}
</code></pre>
<p>Irgendwas funktioniert da nicht, könnt ihr mir helfen? ):</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266817/dateien-einlesen-und-in-klasse-speichern-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 19:00:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266817.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 May 2010 21:22:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:24:38 GMT]]></title><description><![CDATA[<p>Hi.<br />
Ich will mir ein kleines Programm schreiben, dass mir Daten aus ganz normalen *.txt Dateien einliest und dann in einer Klasse speichert. Soweit - sogut. Bei einem Dateipaar (es gehören immer zwei zusammen), schaff ich das noch, aber bei zwei geht das irgendwie nicht mehr so recht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Hier mal der nötige Code:</p>
<pre><code>const int COUNTLEKTION = 40; // Globale Variablen
    int COUNT;
    Nomen *nNomen_1;

bool Datei_Einlesen_Nomen(int iStart, int iEnde) //iStart und iEnde markieren die Start / Endlektion
{
    for(int i=0;i&lt;COUNTLEKTION;i++) { //COUNTLEKTION ist die Gesamtanzahl der Lektionen
        if((i+1) &gt;= iStart &amp;&amp; (i+1) &lt;= iEnde) { //Code soll nur ausgeführt werden, wenn i zwischen dem Start und Endwert liegt
            // Einlesen der _info
            ifstream in_1, in_2, in_3;
            int COUNT_ALL_nomen_info;
            int COUNT_ALL_nomen_1;
            int COUNT_ALL_nomen_2;
            int *nomen_info;
            int *nomen_1;

            COUNT_ALL_nomen_info = getLines(FLektion_nomen_info[i]); // zählt die Zeilen der nötigen Lektion (ebenso unten)
            COUNT_ALL_nomen_1 = getLines(FLektion_nomen_1[i]);
            COUNT_ALL_nomen_2 = getLines(FLektion_nomen_2[i]);

            in_1.open(FLektion_nomen_info[i].c_str(), ios_base::in);
            if(!in_1)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_info[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest die nomen_info ein

            nomen_info = new int [COUNT_ALL_nomen_info];

            for(int l=0; l&lt;COUNT_ALL_nomen_info;l++) {
                string buffer[COUNT_ALL_nomen_info];

                getline(in_1, buffer[l]);
                stringstream sstr(buffer[l]);
                sstr &gt;&gt; nomen_info[l];
            }
            in_1.close();

            in_2.open(FLektion_nomen_1[i].c_str(), ios_base::in);
            if(!in_2)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_1[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest nomen_1 ein

            nomen_1 = new int [COUNT_ALL_nomen_1];

            for(int l=0; i&lt;COUNT_ALL_nomen_1;l++) {
                string buffer[COUNT_ALL_nomen_1];

                getline(in_2, buffer[l]);
                stringstream sstr(buffer[l]);
                sstr &gt;&gt; nomen_1[l];
            }
            in_2.close();

            in_3.open(FLektion_nomen_2[i].c_str(), ios_base::in);
            if(!in_3)
                cerr &lt;&lt; &quot;failed to open &quot; &lt;&lt; FLektion_nomen_2[i] &lt;&lt; &quot;!&quot; &lt;&lt; endl;

            //lest nomen_2 ein

            string nomen_2[COUNT_ALL_nomen_2];

            for(int l=0;l&lt;COUNT_ALL_nomen_2;l++) {
                getline(in_3, nomen_2[l]);
            }
            in_3.close();

            if(i == iStart) { //wenn die Lektion der Start-Lektion entspricht, dann dies hier ausführen

                nNomen = new Nomen [COUNT]; //COUNT wird mit dem entsprechenden Wert schon in main() definiert

                int j = 0, k=0;
                // Daten werden in der Klasse gespeichert

                for(int l=0;i&lt;nomen_info[0];l++) { //nomen_info[0] trägt die Zeilenanzahl von nomen_1/2 der gesuchten Lektion in sich - soviele Klassenelemente werden benötigt
                    nNomen_1[l].erzeuge_DeklTyp(nomen_1[j]);
                    j++;
                    nNomen_1[l].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[l].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int l=0;l&lt;nomen_info[0];i++) {
                    nNomen_1[l].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
            else { //wenn i nicht den Startwert entspricht, muss nNomen_1 nichtmehr definiert werden
                int tmp = COUNT - nomen_info[0];
                int j = 0, k = 0;

                for(int i=tmp;i&lt;COUNT;i++) { //i geht erst bei tmp los, weil die vorherigen nNomen_1[i] schon belegt sind
                    nNomen_1[i].erzeuge_DeklTyp(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int i=tmp;i&lt;COUNT;i++) {
                    nNomen_1[i].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
        }
    }
return true;
}
</code></pre>
<p>Irgendwas funktioniert da nicht, könnt ihr mir helfen? ):</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897326</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 14 May 2010 21:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:38:28 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Wie wärs mit einem Minimalbeispiel?</p>
<p>Taste dich einfach langsam heran, bis der Fehler auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897328</guid><dc:creator><![CDATA[fake_Kenner]]></dc:creator><pubDate>Fri, 14 May 2010 21:38:28 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:43:41 GMT]]></title><description><![CDATA[<p>fake_Kenner schrieb:</p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Wie wärs mit einem Minimalbeispiel?</p>
</blockquote>
<p>Was meinst du damit?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897329</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 14 May 2010 21:43:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:47:42 GMT]]></title><description><![CDATA[<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>fake_Kenner schrieb:</p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Wie wärs mit einem Minimalbeispiel?</p>
</blockquote>
<p>Was meinst du damit?</p>
<p>Grüße</p>
</blockquote>
<p>Damit ist gemeint, dass sich niemand 109 Zeilen durchliest, wenn man nur ein &quot;funktioniert irgendwie nicht&quot; als Fehlerbeschreibung bekommt. Lies dir mal dies durch, dann kannst du eher Leute motivieren, dir zu helfen:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897334</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 14 May 2010 21:47:42 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:50:59 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>fake_Kenner schrieb:</p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Wie wärs mit einem Minimalbeispiel?</p>
</blockquote>
<p>Was meinst du damit?</p>
<p>Grüße</p>
</blockquote>
<p>Damit ist gemeint, dass sich niemand 109 Zeilen durchliest, wenn man nur ein &quot;funktioniert irgendwie nicht&quot; als Fehlerbeschreibung bekommt. Lies dir mal dies durch, dann kannst du eher Leute motivieren, dir zu helfen:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html</a></p>
</blockquote>
<p>Nun, erstens, hab ich den Code schon auf eine Funktion reduziert und zweitens versuche ich gerade selber auf die Ursache des Fehlers zu kommen! Außerdem ist der Code schnell überflogen..</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897336</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 14 May 2010 21:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:59:39 GMT]]></title><description><![CDATA[<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>Nun, erstens, hab ich den Code schon auf eine Funktion reduziert und zweitens versuche ich gerade selber auf die Ursache des Fehlers zu kommen! Außerdem ist der Code schnell überflogen..</p>
</blockquote>
<p>Wenn dir keiner hilft und sogar schon zwei Leute sagen, dass etwas mit deiner Frage nicht stimmt, dann solltest du dir langsam Gedanken machen, ob du mit dieser Einstellung wirklich richtig liegst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897341</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 14 May 2010 21:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 21:59:55 GMT]]></title><description><![CDATA[<p>Also ich (und viele andere) haben keine Lust den Code anzugucken,<br />
der erstens nur in Code-Tags steht und nicht in den speziell für C/C++ ausgelegten cpp Tags:</p>
<pre><code class="language-cpp">int main()
{
 retur 0;
}
</code></pre>
<p>Und zweitens ist nix zum genauen Fehler bekannt. Stürzt das Programm ab, kompiliert es nicht, blabla... Da hab ich gar kein Motivation zu helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897343</guid><dc:creator><![CDATA[jkljkl]]></dc:creator><pubDate>Fri, 14 May 2010 21:59:55 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 22:03:36 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>Nun, erstens, hab ich den Code schon auf eine Funktion reduziert und zweitens versuche ich gerade selber auf die Ursache des Fehlers zu kommen! Außerdem ist der Code schnell überflogen..</p>
</blockquote>
<p>Wenn dir keiner hilft und sogar schon zwei Leute sagen, dass etwas mit deiner Frage nicht stimmt, dann solltest du dir langsam Gedanken machen, ob du mit dieser Einstellung wirklich richtig liegst...</p>
</blockquote>
<p>Sorry, ich versuch ja wirklich geraden den Kern des Fehlers zu finden (ich weiß es eben selbst nicht), bin kein Vollprofi, darum verzeiht mir den langen Code-Tag.</p>
<p>jkljkl schrieb:</p>
<blockquote>
<p>Also ich (und viele andere) haben keine Lust den Code anzugucken,<br />
der erstens nur in Code-Tags steht und nicht in den speziell für C/C++ ausgelegten cpp Tags:</p>
<pre><code class="language-cpp">int main()
{
 retur 0;
}
</code></pre>
<p>Und zweitens ist nix zum genauen Fehler bekannt. Stürzt das Programm ab, kompiliert es nicht, blabla... Da hab ich gar kein Motivation zu helfen.</p>
</blockquote>
<p>Auch das wusste ich nicht, dass es einen eigenen C/C++ Code Tag gibt, bin, wie gesagt, neu hier, darum verzeiht mir bitte nochmal meine Anfängerfehler. Ich werde versuche den Code auf den wahren Fehler zu reduzieren und die Fehlermeldung dazu posten. <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>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897344</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 14 May 2010 22:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 22:07:34 GMT]]></title><description><![CDATA[<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>Nun, erstens, hab ich den Code schon auf eine Funktion reduziert und zweitens versuche ich gerade selber auf die Ursache des Fehlers zu kommen! Außerdem ist der Code schnell überflogen..</p>
</blockquote>
<p>Wenn dir keiner hilft und sogar schon zwei Leute sagen, dass etwas mit deiner Frage nicht stimmt, dann solltest du dir langsam Gedanken machen, ob du mit dieser Einstellung wirklich richtig liegst...</p>
</blockquote>
<p>Sorry, ich versuch ja wirklich geraden den Kern des Fehlers zu finden (ich weiß es eben selbst nicht), bin kein Vollprofi, darum verzeiht mir den langen Code-Tag.</p>
<p>jkljkl schrieb:</p>
<blockquote>
<p>Also ich (und viele andere) haben keine Lust den Code anzugucken,<br />
der erstens nur in Code-Tags steht und nicht in den speziell für C/C++ ausgelegten cpp Tags:</p>
<pre><code class="language-cpp">int main()
{
 retur 0;
}
</code></pre>
<p>Und zweitens ist nix zum genauen Fehler bekannt. Stürzt das Programm ab, kompiliert es nicht, blabla... Da hab ich gar kein Motivation zu helfen.</p>
</blockquote>
<p>Auch das wusste ich nicht, dass es einen eigenen C/C++ Code Tag gibt, bin, wie gesagt, neu hier, darum verzeiht mir bitte nochmal meine Anfängerfehler. Ich werde versuche den Code auf den wahren Fehler zu reduzieren und die Fehlermeldung dazu posten. <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>
<p>Grüße</p>
</blockquote>
<p>Vielleicht erzählt du auch einfach mal, was du vor hast und woran es scheitert. Eventuell kann man dir ja dort einen Tipp geben, der dich schon weiter bringt. In jedem Fall scheint deine Funktion viel doppelten Code zu nutzen, eventuell solltest du dort an eine weitere Funktion denken. Vielleicht löst sich das Problem ja sogar von ganz alleine, wenn du den Code etwas &quot;aufräumst&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897348</guid><dc:creator><![CDATA[jkljkl]]></dc:creator><pubDate>Fri, 14 May 2010 22:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Fri, 14 May 2010 22:24:22 GMT]]></title><description><![CDATA[<p>jkljkl schrieb:</p>
<blockquote>
<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Hobbyprogrammierer schrieb:</p>
<blockquote>
<p>Nun, erstens, hab ich den Code schon auf eine Funktion reduziert und zweitens versuche ich gerade selber auf die Ursache des Fehlers zu kommen! Außerdem ist der Code schnell überflogen..</p>
</blockquote>
<p>Wenn dir keiner hilft und sogar schon zwei Leute sagen, dass etwas mit deiner Frage nicht stimmt, dann solltest du dir langsam Gedanken machen, ob du mit dieser Einstellung wirklich richtig liegst...</p>
</blockquote>
<p>Sorry, ich versuch ja wirklich geraden den Kern des Fehlers zu finden (ich weiß es eben selbst nicht), bin kein Vollprofi, darum verzeiht mir den langen Code-Tag.</p>
<p>jkljkl schrieb:</p>
<blockquote>
<p>Also ich (und viele andere) haben keine Lust den Code anzugucken,<br />
der erstens nur in Code-Tags steht und nicht in den speziell für C/C++ ausgelegten cpp Tags:</p>
<pre><code class="language-cpp">int main()
{
 retur 0;
}
</code></pre>
<p>Und zweitens ist nix zum genauen Fehler bekannt. Stürzt das Programm ab, kompiliert es nicht, blabla... Da hab ich gar kein Motivation zu helfen.</p>
</blockquote>
<p>Auch das wusste ich nicht, dass es einen eigenen C/C++ Code Tag gibt, bin, wie gesagt, neu hier, darum verzeiht mir bitte nochmal meine Anfängerfehler. Ich werde versuche den Code auf den wahren Fehler zu reduzieren und die Fehlermeldung dazu posten. <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>
<p>Grüße</p>
</blockquote>
<p>Vielleicht erzählt du auch einfach mal, was du vor hast und woran es scheitert. Eventuell kann man dir ja dort einen Tipp geben, der dich schon weiter bringt. In jedem Fall scheint deine Funktion viel doppelten Code zu nutzen, eventuell solltest du dort an eine weitere Funktion denken. Vielleicht löst sich das Problem ja sogar von ganz alleine, wenn du den Code etwas &quot;aufräumst&quot;.</p>
</blockquote>
<p>Nun, es soll mal ein Vokabelüberprüfer werden. Zurzeit bin ich bei dem Schritt, dass ich erstmal die Daten von den Dateien einlesen will und dann in einer Klasse abspeichern will. Das Problem bei der Sache ist, dass ich die Dateien in Lektionen unterteile, aber nur einen Klassenarray will, und nicht 10 verschiedene Klassenvariablen. <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>Es dürft wohl hier hacken:</p>
<pre><code class="language-cpp">if((i+1) == iStart) {
                int j = 0, k=0;
                nNomen_1 = new Nomen [COUNT];

                for(int l=0;i&lt;nomen_info[0];l++) {
                    nNomen_1[l].erzeuge_DeklTyp(nomen_1[j]); //zeile 100
                    j++;
                    nNomen_1[l].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[l].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int l=0;l&lt;nomen_info[0];i++) {
                    nNomen_1[l].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
            else {
                int tmp = COUNT - nomen_info[0];
                int j = 0, k = 0;

                for(int i=tmp;i&lt;COUNT;i++) {
                    nNomen_1[i].erzeuge_DeklTyp(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Lekt(nomen_1[j]);
                    j++;
                    nNomen_1[i].erzeuge_Geschlecht(nomen_1[j]);
                    j++;
                }
                for(int i=tmp;i&lt;COUNT;i++) {
                    nNomen_1[i].erzeuge_2(nomen_2[k], nomen_2[k+1], nomen_2[k+2]);
                    k += 3;
                }
            }
</code></pre>
<p>Zuerst läuft das Programm ganz normal und dann dann gibt er mir so eine hässliche Fehlermeldung raus: Programm received signal SIGSEGV, Segmentation fault. Do you want to to view the backtrace? YES/NO<br />
Wenn ich auf JA klicke kommt: Call stack<br />
Nr | Adress | Function | File | Line<br />
0 00438466 std::string::assign() [...] 77<br />
1 0043A52E std::string::operator=() [...] 77<br />
2 004014AC Nomen::erzeuge_DeklTyp(this=0x5d470c, iDeklTyp=6) [...] 25<br />
3 00402840 Datei_Einlesen_Nomen(iStart=1, iEnde=2) [...] 100<br />
4 00403994 main() [...] 210</p>
<p>Zeile 100 ist oben eingezeichnet, Zeile 77 ist mitten im Einlesen der Dateien in Arrays, das funktioniert allerdings, das hab ich nachgeprüft.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897352</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 14 May 2010 22:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Sat, 15 May 2010 00:20:51 GMT]]></title><description><![CDATA[<p>Was sind denn <code>nomen_info[0]</code> und <code>COUNT</code> ? Vermutlich ist nämlich <code>nomen_info[0]</code> größer als COUNT und deshalb bekommst du den Fehler.</p>
<p>Allgemein solltest du unbedingt std::vector anstatt eigener dynamischer Arrays benutzen, dann können solche Fehler gar nicht erst so schnell auftreten und falls doch, können sie leichter gefunden werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897370</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 15 May 2010 00:20:51 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Sat, 15 May 2010 09:02:23 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Was sind denn <code>nomen_info[0]</code> und <code>COUNT</code> ? Vermutlich ist nämlich <code>nomen_info[0]</code> größer als COUNT und deshalb bekommst du den Fehler.</p>
</blockquote>
<p>COUNT ist größer als nomen_info[0], das hab ich überprüft.</p>
<blockquote>
<p>Allgemein solltest du unbedingt std::vector anstatt eigener dynamischer Arrays benutzen, dann können solche Fehler gar nicht erst so schnell auftreten und falls doch, können sie leichter gefunden werden.</p>
</blockquote>
<p>Hab ich mir jetzt noch nicht sooo angeschaut, allerdings werd ich es versuchen. Hat da irgendwer ein gutes Tutorial bei der Hand? Ansonsten frage ich mal Onkel Google. <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>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897413</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Sat, 15 May 2010 09:02:23 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Sat, 15 May 2010 09:35:41 GMT]]></title><description><![CDATA[<p>Ok, hab den Fehler gefunden: Hab alle Schleifenvariablen von 'i' auf 'l' umbenannt, weil 'i' ja schon in der gaaanz großen Schleife definiert war und somit der Compiler etwas verwirrt gewesen sein könnte. Jetzt funktionierts!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897423</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Sat, 15 May 2010 09:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien einlesen und in Klasse speichern - Problem! on Sat, 15 May 2010 09:41:53 GMT]]></title><description><![CDATA[<p>Die vorgestellte Funktion ist VIEL zu lang, zu komplex, zu tief verschachtelt.<br />
Das muss doch möglich sein, das Monstrum in kleinere Teilfunktionen zu zerlegen?</p>
<p>Also man kann ja nur vermuten, was die Funktion überhaupt tun soll.<br />
Was soll denn geschehen, wenn man z.B.</p>
<pre><code class="language-cpp">Datei_EinLesen_Nomen(5, 12);
</code></pre>
<p>aufruft?</p>
<p>Es werden ja offenbar mehrere Dateien dabei eingelesen, womöglich gar mehrere 'Dateien-Paare', also könnte man die Funktion in einem ersten Schritt schon mal umbenennen:</p>
<pre><code class="language-cpp">DateiPaare_EinLesen(5, 12);
</code></pre>
<p>? Ist das so richtig in das Code-Fragment hineininterpretiert?</p>
<p>Zudem kann man nur mutmaßen, wie die Klasse 'CLektion' (?), deren Instanzen scheinbar FLektion_nomen_info[0-39] heißen, gebaut sein könnte ...</p>
<p>Sehr verdächtig ist auch</p>
<pre><code class="language-cpp">COUNT_ALL_nomen_info = getLines(FLektion_nomen_info[i]);
</code></pre>
<p>Ist getLines womöglich ein friend von CLektion, der auf die Interna einer(hoffentlich als Refernez-Parameter übergebenen) CLektion-Instanz zugreifen darf, um die Anzahl der dort speicherbaren Zeilen (?) herauszufinden?<br />
Fragen über Fragen, aus dem nur schütter kommentierten Quellcode wird man einfach nicht schlau.<br />
Auch</p>
<pre><code class="language-cpp">FLektion_nomen_info[i].c_str()
</code></pre>
<p>tut wohl eher nichts Vernünftiges (Konvertiert die Funktion womöglich den in Flektion_nomen_info[i] abgelegten std::string - Dateinamen in einen C-String? Scheint plausibel ...)</p>
<p>Insgesamt kann man nur raten, die Monster-Funktion in kleinere, überschaubare Einheiten zu zergliedern, und falls das partout nicht möglich sein sollte, dann zumindest den Quellcode besser zu kommentieren und auch das eine oder andere Wort über den Bauplan eines CLektion-Objektes zu verlieren.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897429</guid><dc:creator><![CDATA[Horrorfunktion]]></dc:creator><pubDate>Sat, 15 May 2010 09:41:53 GMT</pubDate></item></channel></rss>