<?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[Strings aus Datei herauslesen und in zweidimensionalem Array speichern]]></title><description><![CDATA[<p>Hallo alle,</p>
<p>ich habe folgendes Problem:<br />
Die Datei besteht aus mehreren Zeilen, wobei eine Zeile jeweils 5 durch \t getrennte Einträge enthält.<br />
Nun möchte ich die Datei nach einem bestimmten Wort durchsuchen und alle Ergenisse (Wort kann in mehreren Zeilen vorkommen!) in einem zweidimensionalen String-Array abspeichern.<br />
Nun erstmal die Frage, gibt es in C++ sowas wie String-Arrays (also irgendwas der Form string str[];) oder muss ich da auf <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-284460.html" rel="nofollow">sowas</a> zurückgreifen?</p>
<p>Für hilfreiche Informationen wäre ich sehr dankbar!</p>
<p>Viele Grüße,<br />
TheBrain</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127380/strings-aus-datei-herauslesen-und-in-zweidimensionalem-array-speichern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 03:18:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127380.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Nov 2005 17:40:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 17:40:16 GMT]]></title><description><![CDATA[<p>Hallo alle,</p>
<p>ich habe folgendes Problem:<br />
Die Datei besteht aus mehreren Zeilen, wobei eine Zeile jeweils 5 durch \t getrennte Einträge enthält.<br />
Nun möchte ich die Datei nach einem bestimmten Wort durchsuchen und alle Ergenisse (Wort kann in mehreren Zeilen vorkommen!) in einem zweidimensionalen String-Array abspeichern.<br />
Nun erstmal die Frage, gibt es in C++ sowas wie String-Arrays (also irgendwas der Form string str[];) oder muss ich da auf <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-284460.html" rel="nofollow">sowas</a> zurückgreifen?</p>
<p>Für hilfreiche Informationen wäre ich sehr dankbar!</p>
<p>Viele Grüße,<br />
TheBrain</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925513</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 17:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 17:45:59 GMT]]></title><description><![CDATA[<p>Klar gibt es string-Arrays, aber auf dem Heap nur mit fester Größe - ich würde dir dafür einen vector&lt;vector&lt;string&gt; &gt; empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925519</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 23 Nov 2005 17:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 17:51:22 GMT]]></title><description><![CDATA[<p>Ach herrje, stimmt ja, die Vektoren gibts ja auch noch. Wie siehts da mit prophilaktischem Speicheralloziieren aus? Muss ich das machen, oder wird das beispielsweise bei pushback automatisch erledigt?</p>
<p>und wie schmeiße ich ein solches vector&lt;vector&lt;string&gt;&gt;-Array nach Gebrauch am besten weg?</p>
<p>Viele Grüße,<br />
TheBrain</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925524</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 17:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 18:01:54 GMT]]></title><description><![CDATA[<p>Du kannst den Speicher mit reserve() reservieren, aber das bringt nur Geschwindigkeitsvorteile - push_pack() holt sich schon genug Platz.</p>
<p>(und &quot;wegschmeißen&quot; können sich vector&lt;&gt;en auch alleine, wenn sie nicht mehr gebraucht werden ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925536</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 23 Nov 2005 18:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 19:17:48 GMT]]></title><description><![CDATA[<p>Ok, danke.</p>
<p>Sagen wir mal vector&lt;vector&lt;string&gt; &gt; vec_str;<br />
Das Problem mit den Strings ist nun, dass ich fscanf nicht mehr verwenden kann, um die Datei auszulesen (da diese char* verlangt).<br />
Angenommen eine Zeile enthält 5 Strings, wie kann ich nun diese 5 Strings in ein Element von vec_str hauen?</p>
<p>Also dass vec_str[0] den Vector vec enthält, wobei vec[0] = String 1, vec[1] = String 2 usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925609</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 19:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 19:25:54 GMT]]></title><description><![CDATA[<p>Strings liest du am besten mit getline ein. Und ich nehme jetzt mal an, dass die Datei folgendes Format hat:</p>
<p>String0 String1 String2 String3<br />
String4 String5 String6 String7<br />
...</p>
<pre><code class="language-cpp">ifstream ifs(&quot;file.txt&quot;);
if (!ifs)
  return 1;

string tmp(&quot;&quot;);
while (ifs.good()) {
  getline(ifs, tmp);  //Zeilenweise einlesen
  //Hier kannst du tmp dann splitten und gleich in vec_str reinhauen
};

ifs.close();  //Edit: Close vergessen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/925616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925616</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 23 Nov 2005 19:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 20:08:20 GMT]]></title><description><![CDATA[<p>Mit getline versuche ich es gerade, aber er schmeißt mir beim Kompilieren eine elendlange Fehlermeldung raus, mein Code sieht momentan so aus:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;fstream&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

using namespace std;

typedef vector&lt;vector&lt;string&gt; &gt; ret_array;

ret_array ReadFromFile(int data_type, int option, string keyword)
{
    if(data_type == 0)
    {
        ret_array result;
        result.clear();

        string curr_line(&quot;&quot;);

        ifstream words;
        words.open(&quot;file.dat&quot;,ios::in);

        if(words.fail() || words.bad() || keyword == &quot;&quot;)
        {
            result[0][0] = &quot;error&quot;;
            return result;
        }
        else
        {
            string str1(&quot;&quot;), str2(&quot;&quot;), str3(&quot;&quot;), str4(&quot;&quot;), str5(&quot;&quot;);
            int row = 0;
            while (!words.eof() &amp;&amp; words.good())
            {
                getline(words, curr_line);
                if(str1 == keyword)
                {
                    result[row].push_back(str1);
                    result[row].push_back(str2);
                    result[row].push_back(str3);
                    result[row].push_back(str4);
                    result[row].push_back(str5);
                }
                row++;
            }
            words.close();
            return result;
        }
    }
}

int main()
{
    ret_array s = ReadFromFile(0,0,&quot;Hallo&quot;);
    return 0;
}
</code></pre>
<p>Sieht jemand da nen groben Schnitzer? <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925665</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 20:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 20:13:29 GMT]]></title><description><![CDATA[<p>Sieht jemand die Fehlermeldung und Zeile?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925673</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Wed, 23 Nov 2005 20:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 20:29:21 GMT]]></title><description><![CDATA[<p>Ich würde sie ja gerne hier reinkopieren, aber da kommt so viel, dass das meiste schon wieder &quot;oben aus der Konsole rauswandert&quot;. Aber gut, hier ein paar Auszüge <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>//Edit:<br />
Wieder gelöscht ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925678</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 20:29:21 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Wed, 23 Nov 2005 20:25:16 GMT]]></title><description><![CDATA[<p>Hmm, ok, lag dann wohl an mir *schäm*<br />
Mit g++ lässt es sich kompilieren.</p>
<p>Tut mir leid, Leute!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925686</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Wed, 23 Nov 2005 20:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Thu, 24 Nov 2005 07:44:33 GMT]]></title><description><![CDATA[<p>Nur ein kleiner Tip: vector::operator[] prüft nicht, ob du noch genug Platz hast - für den inneren Vector nutzt du zwar push_pack() (das ist auch OK), aber beim äußeren Vector speicherst du in Bereiche, die dir nicht gehören).</p>
<pre><code class="language-cpp">while (!words.eof() &amp;&amp; words.good())//btw, hier reicht words.good() aus ;)
{
  getline(words, curr_line);
  vector&lt;string&gt; line_vec;
  //hier fehlt noch etwas, um curr_line auf str1..str5 zu verteilen
  //noch besser: initialisiere &quot;vector&lt;string&gt;line_vec(5);&quot; und pack' die Teilstringe direkt darein
  if(str1 == keyword)
  {
    line_vec.push_back(str1);
    line_vec.push_back(str2);
    line_vec.push_back(str3);
    line_vec.push_back(str4);
    line_vec.push_back(str5);
    result.push_back(line_vec);
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/925840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925840</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 24 Nov 2005 07:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to Strings aus Datei herauslesen und in zweidimensionalem Array speichern on Thu, 24 Nov 2005 16:58:31 GMT]]></title><description><![CDATA[<p>Hast recht, werde das ändern!<br />
Und das Aufdröseln der Zeile mach ich mit Hilfe von istringstream, klappt super <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/926270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926270</guid><dc:creator><![CDATA[TheBrain]]></dc:creator><pubDate>Thu, 24 Nov 2005 16:58:31 GMT</pubDate></item></channel></rss>