<?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[fstream geht mal, geht mal nicht]]></title><description><![CDATA[<p>Abend</p>
<p>Ich hoffe eure Kristallkugeln sind frisch poliert, ich habe hier nämlich wieder mal ein Mysterium zu lösen. Ich hab nämlich ein Problem mit dem fstream und zwar funktioniert es bei einigen Files wunderbar, bei anderen stürzt er nach ein paar Zeilen ab.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

struct asw
{
   std::vector &lt;std::string&gt; Inhalt;
   int laenge;  
} KAT,ERG;

load()
{
   char zeile[1024];

   f.open(&quot;C:\test1.txt&quot;, ifstream::in);

   if(f.good)
   {
      g.open(&quot;C:\test2.txt&quot;, ifstream::in);
      if(g.good())
      {
         f.seekg(0L, ios::beg);

         while (! f.eof())
         {
             f.getline(zeile, 1024);
             KAT.Inhalt.push_back(zeile);
             KAT.laenge++;
         }

         g.seekg(0L, ios::beg);

         while (! g.eof())
         {
             g.getline(zeile, 1024);
             ERG.Inhalt.push_back(zeile);
             ERG.laenge++;
         }

         f.close();
         g.close();
      }
   }
}
</code></pre>
<p>Das Script ist grob rauskopiert, ich weiss nich ob es so funktioniert, aber generell lauft es bei mir...</p>
<p>Lustigerweise geht beim auskommentieren des ersten Auslesens alles wunderbar, er kann also die &quot;g-files&quot; immer lesen. Die Files enthalten nur ASCII Zeichen und die Zeilen sind auch nie länger als 1024 Zeichen, deshalb vermute/hoffe ich dass es nicht an den Files liegt. Beim Debuggen zeigt er immer bei der gleichen gelesenen Zeile noch den letzten Inhalt der variable &quot;zeile&quot; an, obwohl diese sich eigentlich schon hätte ändern müssen. wenn er dann die variable in &quot;KAT.Inhalt&quot; speichern will stürzt er ab...</p>
<p>Wenn ihr mir sonst einfach eine bewährte Alternative bieten könnt, währe ich schon sehr dankbar. Ich muss einfach Zeile für Zeile heraus lesen und in eine Variable abspeichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254533/fstream-geht-mal-geht-mal-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 18:18:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254533.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Nov 2009 15:38:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Tue, 17 Nov 2009 15:38:03 GMT]]></title><description><![CDATA[<p>Abend</p>
<p>Ich hoffe eure Kristallkugeln sind frisch poliert, ich habe hier nämlich wieder mal ein Mysterium zu lösen. Ich hab nämlich ein Problem mit dem fstream und zwar funktioniert es bei einigen Files wunderbar, bei anderen stürzt er nach ein paar Zeilen ab.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

struct asw
{
   std::vector &lt;std::string&gt; Inhalt;
   int laenge;  
} KAT,ERG;

load()
{
   char zeile[1024];

   f.open(&quot;C:\test1.txt&quot;, ifstream::in);

   if(f.good)
   {
      g.open(&quot;C:\test2.txt&quot;, ifstream::in);
      if(g.good())
      {
         f.seekg(0L, ios::beg);

         while (! f.eof())
         {
             f.getline(zeile, 1024);
             KAT.Inhalt.push_back(zeile);
             KAT.laenge++;
         }

         g.seekg(0L, ios::beg);

         while (! g.eof())
         {
             g.getline(zeile, 1024);
             ERG.Inhalt.push_back(zeile);
             ERG.laenge++;
         }

         f.close();
         g.close();
      }
   }
}
</code></pre>
<p>Das Script ist grob rauskopiert, ich weiss nich ob es so funktioniert, aber generell lauft es bei mir...</p>
<p>Lustigerweise geht beim auskommentieren des ersten Auslesens alles wunderbar, er kann also die &quot;g-files&quot; immer lesen. Die Files enthalten nur ASCII Zeichen und die Zeilen sind auch nie länger als 1024 Zeichen, deshalb vermute/hoffe ich dass es nicht an den Files liegt. Beim Debuggen zeigt er immer bei der gleichen gelesenen Zeile noch den letzten Inhalt der variable &quot;zeile&quot; an, obwohl diese sich eigentlich schon hätte ändern müssen. wenn er dann die variable in &quot;KAT.Inhalt&quot; speichern will stürzt er ab...</p>
<p>Wenn ihr mir sonst einfach eine bewährte Alternative bieten könnt, währe ich schon sehr dankbar. Ich muss einfach Zeile für Zeile heraus lesen und in eine Variable abspeichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809457</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Tue, 17 Nov 2009 15:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Tue, 17 Nov 2009 15:38:51 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-14774.html" rel="nofollow">akari</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html" rel="nofollow">VCL (C++ Builder)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809458</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 17 Nov 2009 15:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Tue, 17 Nov 2009 16:05:02 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Das Script ist grob rauskopiert, ich weiss nich ob es so funktioniert, aber generell lauft es bei mir...</p>
</blockquote>
<p>Na, du bist gut. Das was du hier schreibst steckt so voller Fehler, dass kann man niemals kompilieren. Ich habe mir mal die Freiheit genommen alles zu korrigieren und an ein paar Stellen zu verbessern. Wahrscheinlich verschwindet dadurch auch dein Fehler. Bei dem was du hier abgeliefert hast kann man nicht nachvollziehen wo er überhaupt liegt.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
// #include &lt;sstream&gt; // Wird hier nirgends benutzt

std::vector &lt;std::string&gt; KAT,ERG;  // Es gibt schließlich vector::size. Das macht das Speichern der Länge überflüssig
// Globale variablen sind eigentlich kein guter Stil

void load()  // Funktionen müssen einen Rückgabewert haben
{
   std::string zeile;   // std::string kennst du ja anscheinend, warum sich mit char-Arrays rumärgern?

   std::ifstream f,g;    // Waren bei dir anscheinend auch global, ich definier sie jetzt in der Funktion, damit das Programm überhaupt kompiliert

   f.open(&quot;C:\test1.txt&quot;, std::ios::in);   // Die Openmodes liegen standardmäßig im Namespace std::ios, nicht in ifstream

   if(f.good()) //good()  ist eine Funktion, keine Membervariable
   {
      g.open(&quot;C:\test2.txt&quot;, std::ios::in);
      if(g.good())
      {
         // f.seekg(0L, ios::beg);  // Das Lesen beginnt sowieso am Anfang

         while (getline(f,zeile)) KAT.push_back(zeile); // Beschäftige dich mal damit, wann ein stream EOF wird. Dann dürfte dir ein Fehler an deiner alten Schleife auffallen

         // g.seekg(0L, ios::beg); // siehe oben

         while (getline(g, zeile)) ERG.push_back(zeile);  // getline ist eine Funktion aus dem string-Header, die für std::string funktioniert. Macht ansonsten das gleiche wie die gleichnamige istream Memberfunktion

         f.close();
         g.close();
      }
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1809474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809474</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 17 Nov 2009 16:05:02 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Wed, 18 Nov 2009 08:24:41 GMT]]></title><description><![CDATA[<p>Zu meiner verteidigung: das meiste hab ich aus diesem board heraus kopiert <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>
<pre><code class="language-cpp">std::ifstream f,g;    // Waren bei dir anscheinend auch global, ich definier sie jetzt in der Funktion, damit das Programm überhaupt kompiliert
</code></pre>
<p>Sorry die hab ich noch vergessen zu erwähnen. Sind bei mir drin und natürlich nicht global. Global ist nur was in mehreren Unterprogrammen verwendet wird und den struct den ich gemacht habe ist die allgemeine Schnittstelle...</p>
<pre><code class="language-cpp">while (getline(f,zeile)) KAT.push_back(zeile); // Beschäftige dich mal damit, wann ein stream EOF wird. Dann dürfte dir ein Fehler an deiner alten Schleife auffallen
</code></pre>
<p>So funktioniert bei mir gleich gar nichts mehr. lässt sich kompilieren, macht aber gar nichts. und dass mit dem EOF hat bisher immer gut funktioniert, er stürzt ja nicht wegen der while Schlaufe ab, sondern weil er irgendwas mit dem fstream nicht richtig macht</p>
<pre><code class="language-cpp">while (! g.eof())
              {
                  getline(g, zeile);  //&lt;-hier liest er nichts mer raus
                  ERG.push_back(zeile); //&lt;- hier stürtzt er ab...
                  ERG.laenge++;
              }
</code></pre>
<p>Funktioniert auf jeden fall immer noch nicht wirklich. Habe alles abgeändert, aber macht immer noch dieselben Fehler</p>
<p>Edit: Ok das mit der while Schleife geht doch ganz gut, hat nur ein Fehler mit dem Format gegeben. Problem besteht aber immernoch <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809710</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Wed, 18 Nov 2009 08:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Wed, 18 Nov 2009 09:10:13 GMT]]></title><description><![CDATA[<p>Ok Mysterium gelöst, hat gar nur indirekt etwas mit diesem Script zu tun...<br />
Sorry für die Zeitverschwendung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809750</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Wed, 18 Nov 2009 09:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Wed, 18 Nov 2009 12:50:45 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Ok Mysterium gelöst, hat gar nur indirekt etwas mit diesem Script zu tun...<br />
Sorry für die Zeitverschwendung...</p>
</blockquote>
<p>es ist kein script &gt;&lt;<br />
wer bringt denn bitte anfängern bei, c++-quelltext script zu nennen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809854</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 18 Nov 2009 12:50:45 GMT</pubDate></item><item><title><![CDATA[Reply to fstream geht mal, geht mal nicht on Wed, 18 Nov 2009 12:59:16 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Global ist nur was in mehreren Unterprogrammen verwendet wird und den struct den ich gemacht habe ist die allgemeine Schnittstelle...</p>
</blockquote>
<p>Dennoch ist dies nicht der schöne Stil. Wozu gibt es bitte schön Übergabeparameter bei Funktionen? Zumal man dann auch an dem Funktionskopf sieht was die Funktion tatsächlich benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1809858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1809858</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 18 Nov 2009 12:59:16 GMT</pubDate></item></channel></rss>