<?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[getline - String wird falsch übergeben]]></title><description><![CDATA[<p>Ich möchte einen kleinen Parser programmieren, welcher Texte, die in einer Liste gespeichert sind, aufruft und deren einzelne Wörter und die Datei in welcher sie stehen in eine Datei speichert. Ich hoffe das war jetzt verständlich <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="😉"
    /><br />
Das ganze soll der Anfang einer kleinen Suchmaschine sein, die Wörter werden dann sortiert und bei gleichen Wörtern hänge ich die Dateinamen, in welchen sie zu finden sind, zusammen, bzw. speicher sie in einer Art Liste, etc. etc.</p>
<p>Nun jedoch mein Problem:<br />
Das Parsen einzelner Textdateien funktioniert, also gehe ich davon aus, dass die parsen-Funktion korrekt ist. Was allerdings nicht funktioniert ist, dass er eine Liste bekommt, mit den Dateinamen, welche er einlesen soll und eben jene als Parameter an die parsen-Funktion übergibt. Dadurch bleibt die Index-Datei (also jene, in welcher die Wörter Zeile für Zeile gespeichert werden) leer.</p>
<p>Eine Fehlermeldung bekomme ich nicht.</p>
<p>Das Problem sollte in diesem Code liegen. Ich vermute an der getline.<br />
Falls ihr mehr von dem Code benötigt, könnt ihr ja einfach Bescheid sagen <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>
<pre><code class="language-cpp">3 Parser::Parser(string Liste)
  4 {
  5   //parsen(&quot;test.txt&quot;); //funktioniert
  6 
  7   ifstream l;
  8   l.open(Liste.c_str());
  9   if(l.is_open())
 10   {
 11     char* a = new char[256];
 12     while(!l.eof())
 13     {
 14      l.getline(a, 256); //delim = \n
 15      parsen(string(a)); //funktioniert nicht
 16      cout &lt;&lt; a &lt;&lt; &quot; &quot;; //das druckt er, also &quot;test.txt test2.txt &quot;
 17     }
 18     l.close();
 19   }
 20   else
 21   {
 22     cout &lt;&lt; &quot;Datei nicht lesbar!!&quot; &lt;&lt; endl;
 23   }
 24 
 25 }
</code></pre>
<p>Die Liste sieht einfach so aus:</p>
<p>test.txt<br />
test2.txt</p>
<p>Ich bin übrigens noch absoluter Anfänger und für Verbesserungsvorschläge absolut offen <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/topic/252845/getline-string-wird-falsch-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:54:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252845.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Oct 2009 13:56:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 13:56:01 GMT]]></title><description><![CDATA[<p>Ich möchte einen kleinen Parser programmieren, welcher Texte, die in einer Liste gespeichert sind, aufruft und deren einzelne Wörter und die Datei in welcher sie stehen in eine Datei speichert. Ich hoffe das war jetzt verständlich <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="😉"
    /><br />
Das ganze soll der Anfang einer kleinen Suchmaschine sein, die Wörter werden dann sortiert und bei gleichen Wörtern hänge ich die Dateinamen, in welchen sie zu finden sind, zusammen, bzw. speicher sie in einer Art Liste, etc. etc.</p>
<p>Nun jedoch mein Problem:<br />
Das Parsen einzelner Textdateien funktioniert, also gehe ich davon aus, dass die parsen-Funktion korrekt ist. Was allerdings nicht funktioniert ist, dass er eine Liste bekommt, mit den Dateinamen, welche er einlesen soll und eben jene als Parameter an die parsen-Funktion übergibt. Dadurch bleibt die Index-Datei (also jene, in welcher die Wörter Zeile für Zeile gespeichert werden) leer.</p>
<p>Eine Fehlermeldung bekomme ich nicht.</p>
<p>Das Problem sollte in diesem Code liegen. Ich vermute an der getline.<br />
Falls ihr mehr von dem Code benötigt, könnt ihr ja einfach Bescheid sagen <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>
<pre><code class="language-cpp">3 Parser::Parser(string Liste)
  4 {
  5   //parsen(&quot;test.txt&quot;); //funktioniert
  6 
  7   ifstream l;
  8   l.open(Liste.c_str());
  9   if(l.is_open())
 10   {
 11     char* a = new char[256];
 12     while(!l.eof())
 13     {
 14      l.getline(a, 256); //delim = \n
 15      parsen(string(a)); //funktioniert nicht
 16      cout &lt;&lt; a &lt;&lt; &quot; &quot;; //das druckt er, also &quot;test.txt test2.txt &quot;
 17     }
 18     l.close();
 19   }
 20   else
 21   {
 22     cout &lt;&lt; &quot;Datei nicht lesbar!!&quot; &lt;&lt; endl;
 23   }
 24 
 25 }
</code></pre>
<p>Die Liste sieht einfach so aus:</p>
<p>test.txt<br />
test2.txt</p>
<p>Ich bin übrigens noch absoluter Anfänger und für Verbesserungsvorschläge absolut offen <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/1797978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1797978</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 13:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 14:21:16 GMT]]></title><description><![CDATA[<p>Was funktioniert an Zeile 13 nicht? Können wir mal die Methode(?) &quot;parsen&quot; sehen? Ansonsten empfehle ich std::string...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1797997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1797997</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 25 Oct 2009 14:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 14:24:42 GMT]]></title><description><![CDATA[<p>die.ina schrieb:</p>
<blockquote>
<p>Ich bin übrigens noch absoluter Anfänger und für Verbesserungsvorschläge absolut offen <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>
</blockquote>
<p>Was mir sofort ins Auge sticht ist</p>
<pre><code class="language-cpp">char* a = new char[256];
</code></pre>
<p>Zumal du vergisst, den Speicher wieder mit delete[] freizugeben.</p>
<p>Hier kannst du einfach</p>
<pre><code class="language-cpp">char a[256];
</code></pre>
<p>nehmen oder noch besser gleich einen std::string (dafür gibts auch eine eigene getline()-Funktion, da hast du keine Probleme mehr, wenn die Strngs doch einmal länger als 256 Zeichen werden.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798000</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Sun, 25 Oct 2009 14:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 14:29:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">27 int Parser::parsen(string Dateiname)
 28 {
 29 
 30   ifstream f;
 31   ofstream index; //ifstream = Lesen, ofstream = Schreiben, fstream = flexibel 
 32   f.open(Dateiname.c_str()); //bei fstream zusätzlicher Parameter nötig
 33   index.open(&quot;index&quot;);
 34   if(f.is_open()) //testet ob Datei wirklich geöffnet ist
 35   {
 36     char c;
 37     char zeichendavor = ' ';
 38 
 39 /* Problematik: 
 40  * - Problem bei fehlenden Leerzeichen */
 41 
 42     while(!f.eof()) //testet ob Datei zuende ist
 43     {
 44       f.get(c);
 45 
 46 
 47         switch(c)
 48       {
 49         case ' ': case '\n':
 50          switch(zeichendavor)
 51           {
 52             case ' ': case '\n': break;
 53             default:
 54             index &lt;&lt; &quot;\t\t&quot; &lt;&lt; Dateiname &lt;&lt; &quot;\n&quot;;
 55             break;
 56           }
 57           break;
 58         case ',': case '!': case '?': case '.': case '&quot;': break;
 59         default:
 60           switch(zeichendavor)
 61           {
 62             case ',': case '!': case '?': case '.': case '&quot;':
 63                 index &lt;&lt; &quot;\t\t&quot; &lt;&lt; Dateiname &lt;&lt; &quot;\n&quot; &lt;&lt; c; break;
 64             default:  index &lt;&lt; c;
 65             break;
 66           }
 67           break;
 68       }
 69      zeichendavor = c;
 70 
 71     }
 72 
 73   }
 74  f.close();
 75  index.close();
 76   return 0;
 77 }
 78
</code></pre>
<p>Also, das ist parsen(string Dateiname)</p>
<p>Wenn ich den Dateiname direkt einfüge, also z.b.: parsen(test.txt) funktioniert alles tadellos (abgesehen von etlichen Ausnahmefällen die ich noch nicht drinne habe, aber das stört erstmal nicht) und in der index steht dann z.B.</p>
<p>Ich test.txt<br />
weiß test.txt<br />
nicht test.txt<br />
mehr test.txt<br />
weiter test.txt</p>
<p>Wenn ich genau das allerdings mithilfe de getline-Funktion probiere und die Dateinamen aus einer Liste ziehe, ist die index vollkommen leer. Warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798002</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 14:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 14:48:12 GMT]]></title><description><![CDATA[<p>Debugge doch einfach und schau mal, was in 'Dateiname' genau steht und ob er dann die Datei auch öffnen kann...</p>
<p>Ich empfehle aber auch std::string mit der zugehörigen freien Funktion 'getline(string, istream)' zu benutzen.</p>
<p>Außerdem kannst du das Öffnen der Datei gleich beim Konstruktor vornehmen:</p>
<pre><code class="language-cpp">ifstream f(Dateiname.c_str());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1798020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798020</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 25 Oct 2009 14:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 15:26:05 GMT]]></title><description><![CDATA[<p>Also, die genannten Dinge habe ich geändert, das Problem bleibt aber leider dasselbe.<br />
Ich habe bereits versucht zu Debuggen und er kommt auch in parsen(string Dateiname) herein, aber dennoch wird nichts daraus. Habe ddd (GUI für gdb unter Ubuntu) benutzt, werde allerdings aus den Werten für die Variablen nicht schlau. Auf jeden Fall scheint er alles in der parsen-Funktion auszuführen.</p>
<p>Ich gehe ja auch richtig in der Annahme, dass er in der Index nur anhängt und diese nicht jedes Mal neu erstellt oder gegebenenfalls irgendetwas löscht, oder?</p>
<p>Mache ich in die parsen eine Ausgabe für den Dateinamen rein, so gibt er diesen auch korrekt aus.</p>
<p>Danke auf jeden Fall schoneinmal für die Tipps.</p>
<p>EDIT: Ich habe gerade einmal einen else-Zweig reingemacht, um zu schauen, ob er die Dateien öffnet, ... und siehe da, er tut es nicht.<br />
Woran könnte das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798036</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:26:05 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 15:24:03 GMT]]></title><description><![CDATA[<p>Mach aus:</p>
<pre><code class="language-cpp">int Parser::parsen(string Dateiname)
</code></pre>
<p>doch einfach mal:</p>
<pre><code class="language-cpp">int Parser::parsen(const char *Dateiname)
</code></pre>
<p>Ich weiß nämlich nicht ob es da Datenverluste/-veränderungen geben kann. Einfach mal ausprobieren und debuggen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798044</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:24:03 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 15:41:50 GMT]]></title><description><![CDATA[<p>Ich habe jetzt die andere getline Funktion genommen, so dass ich prinzipiell einen String ausgegeben bekomme und keinen char-array mehr, ... ohne es jetzt ausprobiert zu haben, ... wird das nicht auf eine Fehlermeldung hinauslaufen, wenn ich nun sage, der Parameter sei ein char*? Weshalb in diesem Fall eigentlich das &quot;const&quot;?</p>
<p>EDIT: Ich habe es nun vollständig mit const char* probiert, doch bleibt das Problem dasselbe: Er kann die Dateien nicht öffnen, obwohl er den richtigen Dateinamen überliefert bekommt und die Dateinamen innerhalb der parsen-Funktion auch korrekt ausgeben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798050</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 15:48:08 GMT]]></title><description><![CDATA[<p>Ich habe jetzt die andere getline Funktion genommen, so dass ich prinzipiell einen String ausgegeben bekomme und keinen char-array mehr, ... ohne es jetzt ausprobiert zu haben, ... wird das nicht auf eine Fehlermeldung hinauslaufen, wenn ich nun sage, der Parameter sei ein char*? Weshalb in diesem Fall eigentlich das &quot;const&quot;?</p>
<p>EDIT: Ich habe es nun vollständig mit const char* probiert, doch bleibt das Problem dasselbe: Er kann die Dateien nicht öffnen, obwohl er den richtigen Dateinamen überliefert bekommt und die Dateinamen innerhalb der parsen-Funktion auch korrekt ausgeben kann.</p>
<p>EDIT2: Ich seh gerade, dass er ungewöhnlicherweise, trotz 2er Dateien, nur einmal &quot;Kann Datei nicht öffnen!&quot; ausgibt.</p>
<p>Nocheinmal der vollständige Code, wie er jetzt ist:</p>
<pre><code class="language-cpp">#include &quot;Parser.h&quot; 
  Parser::Parser(string Liste)
  {
    //parsen(&quot;test.txt&quot;); //funktioniert
    ifstream l(Liste.c_str());
    if(l.is_open())
    {
      string a;
      while(!l.eof())
      {
       getline(l, a); //delim = \n
       parsen(a); //funktioniert nicht
       cout &lt;&lt; a &lt;&lt; &quot; &quot;;
      }
      l.close();
    }
    else
    {
      cout &lt;&lt; &quot;Datei nicht lesbar!!&quot; &lt;&lt; endl;
    }

  }

  int Parser::parsen(string Dateiname)
  {
    ifstream f(Dateiname.c_str());
    ofstream index; //ifstream = Lesen, ofstream = Schreiben, fstream = flexibel 
    index.open(&quot;index&quot;);
    if(f.is_open()) //testet ob Datei wirklich geöffnet ist
    {
      char c;
      char zeichendavor = ' ';

  /* Problematik: 
   * - Problem bei fehlenden Leerzeichen */

      while(!f.eof()) //testet ob Datei zuende ist
      {
        f.get(c);

          switch(c)
        {
          case ' ': case '\n':
           switch(zeichendavor)
            {
              case ' ': case '\n': break;
              default:
              index &lt;&lt; &quot;\t\t&quot; &lt;&lt; Dateiname &lt;&lt; &quot;\n&quot;;
              break;
            }
            break;
          case ',': case '!': case '?': case '.': case '&quot;': break;
          default:
            switch(zeichendavor)
            {
              case ',': case '!': case '?': case '.': case '&quot;':
                  index &lt;&lt; &quot;\t\t&quot; &lt;&lt; Dateiname &lt;&lt; &quot;\n&quot; &lt;&lt; c; break;
              default:  index &lt;&lt; c;
              break;
            }
            break;
        }
       zeichendavor = c;
      }
      f.close();
       index.close();
    }
     else
      cout &lt;&lt; &quot;Kann Datei nicht öffnen!&quot; &lt;&lt; endl;
     return 0;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1798056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798056</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 15:47:50 GMT]]></title><description><![CDATA[<p>Aus</p>
<pre><code class="language-cpp">l.open(Liste.c_str());
</code></pre>
<p>mal</p>
<pre><code class="language-cpp">l.open(Liste.c_str(), std::ios::in);
</code></pre>
<p>machen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798062</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 25 Oct 2009 15:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 16:01:19 GMT]]></title><description><![CDATA[<p>Keine Änderung.</p>
<p>Ausgabe:</p>
<p><code>test.txt test2.txt Kann Datei nicht öffnen!</code></p>
<p>Ändere ich den else-Zweig auf:</p>
<pre><code class="language-cpp">else
     cout &lt;&lt; &quot;Kann &quot; &lt;&lt; Dateiname &lt;&lt; &quot; nicht öffnen!&quot; &lt;&lt; endl;
</code></pre>
<p>Bekomme ich:</p>
<p><code>test.txt test2.txt Kann nicht öffnen!</code></p>
<p>Er kennt also den Dateinamen nicht mehr. Hat das einen Grund?</p>
<p>Setze ich jedoch eine Ausgabe des Dateinames an die erste Stelle in parsen, so kann er es noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798066</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 16:01:07 GMT]]></title><description><![CDATA[<p>Dann check mal den Pfad. Haste text1.txt auch im richtigen Projekteordner?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798072</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:01:07 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 16:03:41 GMT]]></title><description><![CDATA[<p>Ja, befindet sich alles in einem Ordner.<br />
Und wie gesagt, wenn ich parsen(&quot;test.txt&quot;), bzw. parsen(&quot;test2.txt&quot;) aufufe und ausführe, macht er auch alles, wie er es soll, kann die Datei lesen und in der Index steht das gewünschte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798073</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 16:32:04 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Mach aus:</p>
<pre><code class="language-cpp">int Parser::parsen(string Dateiname)
</code></pre>
<p>doch einfach mal:</p>
<pre><code class="language-cpp">int Parser::parsen(const char *Dateiname)
</code></pre>
<p>Ich weiß nämlich nicht ob es da Datenverluste/-veränderungen geben kann. Einfach mal ausprobieren und debuggen...</p>
</blockquote>
<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Aus</p>
<pre><code class="language-cpp">l.open(Liste.c_str());
</code></pre>
<p>mal</p>
<pre><code class="language-cpp">l.open(Liste.c_str(), std::ios::in);
</code></pre>
<p>machen...</p>
</blockquote>
<p>Hauptsache wild im Zeug rumraten...<br />
Der erste Vorschlag ist nicht wirklich ratsam, wenn die.ina mit <code>std::getline()</code> flexibel sein will. Wie kommst du eigentlich darauf, dass man durch den <code>std::string</code> Daten verlieren könnte? Allerdings könnte sich eine Const-Referenz, also <code>const std::string&amp; Dateiname</code> aus Performancegründen empfehlen.</p>
<p>Dein zweiter Vorschlag bringt überhaupt nichts.</p>
<p>die.ina schrieb:</p>
<blockquote>
<pre><code class="language-cpp">index.open(&quot;index&quot;);
</code></pre>
</blockquote>
<p>Bist du sicher, dass die Datei &quot;index&quot; heisst (ohne Endung)?</p>
<p>Was willst du eigentlich genau erreichen? In einer Datei die Namen anderer Dateien lesen, die du dann einzeln parst? Übrigens rate ich dir, so schnell wie möglich den Umgang mit dem Debugger zu lernen. Das ist eines der hilfreichsten und mächtigsten Werkzeuge eines Programmierers.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798084</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Oct 2009 16:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 17:08:03 GMT]]></title><description><![CDATA[<p>Also, vll ist es etwas umständlich, aber ich weiß nicht, wie ich es besser machen soll.<br />
1. Schritt: 1000e von Textdateien als Liste in einer Datei speichern.<br />
2. Schritt: Die einzelnen Wörter aus den Textdateien in einer weiteren Datei speichern, inklusive dem Namen der Textdatei in welcher sie gefunden wurden.<br />
3. Schritt: Diese Textdatei dann sortieren und bei gleichen Wörtern die Dateinamen als Liste hinter dem jeweiligen Wort speichern.<br />
4. Schritt: Nach Wörtern suchen und eben anzeigen, wo sie zu finden sind.<br />
...</p>
<p>Momentan hänge ich zwischen Schritt 1 und 2, wobei 1 eigentlich noch vollkommen fehlt.</p>
<p>Index ohne Endung ist kein Problem, ... Linux.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798112</guid><dc:creator><![CDATA[die.ina]]></dc:creator><pubDate>Sun, 25 Oct 2009 17:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to getline - String wird falsch übergeben on Sun, 25 Oct 2009 17:12:43 GMT]]></title><description><![CDATA[<p>Hmm. Oben hast du aber gesagt, dass es ja funktioniert..</p>
<p>Also klappt das browsen durch die Ordner nicht? Respektive hast du Probleme mit Pfaden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798114</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 25 Oct 2009 17:12:43 GMT</pubDate></item></channel></rss>