<?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[Probleme mit vector]]></title><description><![CDATA[<p>Ich habe einen vector vom typ char* der mit zeilen aus einer Datei gefüll werden soll. Dazu verwende ich folgenden Code:</p>
<pre><code class="language-cpp">while (inFile.getline (tmp, 255)) {
    lines.push_back (tmp);
  }
</code></pre>
<p>wenn ich jetzt innerhalb dieser Schleife mir den Inhalt anzeigen lasse:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;&gt; &quot; &lt;&lt; lines.at(0)  &lt;&lt; endl;
</code></pre>
<p>klappt alles wunderbar. solbald ich mir den Inhalt mit dem selben Code <strong>nach</strong> der Schleife anzeigen lassen will bekomme ich immer leere Ergebnisse. Woran liegt das?</p>
<p>In Projekt für die Schule, also relativ wichtig . Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/73367/probleme-mit-vector</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 13:28:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73367.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 May 2004 12:16:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 12:16:10 GMT]]></title><description><![CDATA[<p>Ich habe einen vector vom typ char* der mit zeilen aus einer Datei gefüll werden soll. Dazu verwende ich folgenden Code:</p>
<pre><code class="language-cpp">while (inFile.getline (tmp, 255)) {
    lines.push_back (tmp);
  }
</code></pre>
<p>wenn ich jetzt innerhalb dieser Schleife mir den Inhalt anzeigen lasse:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;&gt; &quot; &lt;&lt; lines.at(0)  &lt;&lt; endl;
</code></pre>
<p>klappt alles wunderbar. solbald ich mir den Inhalt mit dem selben Code <strong>nach</strong> der Schleife anzeigen lassen will bekomme ich immer leere Ergebnisse. Woran liegt das?</p>
<p>In Projekt für die Schule, also relativ wichtig . Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516985</guid><dc:creator><![CDATA[Sean Mertiens]]></dc:creator><pubDate>Sun, 09 May 2004 12:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 12:49:42 GMT]]></title><description><![CDATA[<p>Zeig mal ein bisschen mehr code. Speziell die variable tmp ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517000</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Sun, 09 May 2004 12:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 12:54:40 GMT]]></title><description><![CDATA[<p>So wie ich das erkennen kann hast du einen vector voller Zeiger auf ein char.<br />
Das Problem hierbei ist das du in tmp schreibst dann an den vector die adresse von tmp gibst, dann überschreibst du den inhalt von tmp mit der nächsten Zeile und übergibst wieder die Adresse an den Vector.<br />
Du legst also nie neuen Speicherplatz an sondern du hast immer nur die selbe Adresse im Vector stehen, nämlich die von tmp.<br />
Um dieses Problem zu lösen musst du mit new neuen speicher allozieren und erst dann diesen an den Vector übergeben.<br />
Ausserdem würde ich strings verwenden.</p>
<p>P.S.: Nicht vergessen den Speicher wieder mit delete zu löschen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517002</guid><dc:creator><![CDATA[Wolle.]]></dc:creator><pubDate>Sun, 09 May 2004 12:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 13:01:27 GMT]]></title><description><![CDATA[<p>hier ist der komplette quelltext. is noch net ganz fertig, das programm. ich hab nur keine strings verwendet, weil das mit getline zu umständlich ist (also zumindest meiner erfahrun nach <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">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;time.h&gt;

using namespace std;

int RandomCreateWithRange (int min, int max);

int main(int argc, char *argv[]) {
  ifstream inFile (&quot;user.dat&quot;);
  vector&lt;char*&gt; lines;
  string recLine;
  char tmp[255];
  int r, n, c, xt;

  cout &lt;&lt; &quot;Random Sampling C++-App - (c) 2004 by Sean Mertiens\n\n&quot;;
  cout &lt;&lt; &quot;Initializing random-number-generator... \n&quot;;
  srand (time (NULL));
  cout &lt;&lt; &quot;Loading file user.dat in root-dir... &quot;;

  if (! inFile.good()) {
    cout &lt;&lt; &quot;failed!\n&quot;;
    exit (1);
  } else {
    cout &lt;&lt; &quot;done.\n&quot;;
  }

  cout &lt;&lt; &quot;Filling vector... &quot;;

  while (inFile.getline (tmp, 255)) {
    lines.push_back (tmp);
  }

    cout &lt;&lt; lines.at (0) &lt;&lt; endl;
  inFile.close ();

  cout &lt;&lt; lines.size () &lt;&lt; &quot; items... done.\n&quot;;
  cout &lt;&lt; &quot;Calculating in range 0-&quot; &lt;&lt; lines.size () &lt;&lt; endl &lt;&lt; endl;
  cout &lt;&lt; &quot;Please specify the number of samples to be found: &quot;;
  cin &gt;&gt; n;
  cout &lt;&lt; &quot;\n\n==== Result: ====\n&quot;;

  c=1;
  while (c &lt;= n) {
    r = 0 + (rand() % (lines.size () - 0 + 1));
    cout &lt;&lt; &quot;&gt; &quot; &lt;&lt; lines.at (r) &lt;&lt; endl;
    c++;
  }

  cout &lt;&lt; &quot;Exit program? [y/n] &quot;;
  cin &gt;&gt; xt;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/517008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517008</guid><dc:creator><![CDATA[Sean Mertiens]]></dc:creator><pubDate>Sun, 09 May 2004 13:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 13:19:30 GMT]]></title><description><![CDATA[<p>Versuch es mal so:</p>
<pre><code class="language-cpp">// ...

char *tmp;

// ...

while(!inFile.eof())
{
    tmp = new char[255];
    inFile.getline(tmp, 255);
    lines.push_back(tmp);
}

// ...
// Nicht vergessen am Ende den Speicher auch wieder freizugeben!!!

for(int i = 0; i &lt; lines.size(); i++)
{
    delete[] lines[i];
}
lines.clear();

// ...
</code></pre>
<p>Ich denke so müsste es funktionieren.<br />
Mit strings wird das ganze garantiert nicht komplizierter, du brauchst halt nur einen char[] buffer für getline, welcher sich ja aber ohne Probleme in einen String casten lässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517014</guid><dc:creator><![CDATA[Wolle.]]></dc:creator><pubDate>Sun, 09 May 2004 13:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 14:31:14 GMT]]></title><description><![CDATA[<p>btw: man verwendet .at() eigentlich nicht. operator[] ist wesentlich besser, da er keine sinnlosen range checks macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517067</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 09 May 2004 14:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 15:28:32 GMT]]></title><description><![CDATA[<p>Funktioniert, danke!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517123</guid><dc:creator><![CDATA[Sean Mertiens]]></dc:creator><pubDate>Sun, 09 May 2004 15:28:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit vector on Sun, 09 May 2004 18:45:49 GMT]]></title><description><![CDATA[<p>getline mit strings umständlich?</p>
<pre><code class="language-cpp">vector&lt;string&gt; vec;

string str;
while (getline(cin, str))
  vec.push_back(str);
</code></pre>
<p>Mehr nicht. Kein new[], kein delete[], keine Probleme <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="🙂"
    /><br />
Außerdem: &lt;ctime&gt; und &lt;cstdlib&gt; statt der alten .h-Versionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/517259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/517259</guid><dc:creator><![CDATA[operator void]]></dc:creator><pubDate>Sun, 09 May 2004 18:45:49 GMT</pubDate></item></channel></rss>