<?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[Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;string&gt; 

using namespace std; 
int main(int argc, char **argv)

 { 
  string str; 
  string dateiname;
  vector&lt;string&gt; vec;
  string output;

  string data; 

  int a=0;                 // VARIABLENDEKLARATION a... Zeilenzählvariabel
  int ii=0;
  int i=0;
  int find1;

int z =0; // Abbruchvariable für While Schleife!

while (z==0) 
{ 
        getline(cin, dateiname); 
        ifstream ifs(dateiname.c_str());

                if (!ifs) 
                { 
                cout &lt;&lt; &quot;Datei existiert nicht! &quot; &lt;&lt; endl; 
                cout &lt;&lt; &quot;Bitte um Neueingabe &quot; &lt;&lt; endl; 
                } 
                else 
                { 
                cout &lt;&lt; &quot;Datei geoeffnet!&quot; &lt;&lt; endl; 

                while (!ifs.eof()) {  // Einlesen der DATEI
                getline(ifs, str); 
                vec.push_back(str);                     // Zeile wird an Vektor 
                a++;  
                z=1; 
                } 

            cout &lt;&lt; &quot;Bitte geben Sie die Output Datei an (nur Namen).&quot; &lt;&lt; endl;
            getline(cin, output);

                 }  

} 

    for (ii=0;ii&lt;a;ii++)         // FOR SCHLEIFE die geöffnete Datei durchläuft

    {
        vec[ii].insert(126,&quot;;&quot;);
        vec[ii].insert(132,&quot;;&quot;);
        vec[ii].insert(134,&quot;;&quot;);
        vec[ii].insert(136,&quot;;&quot;);
        vec[ii].insert(141,&quot;;;&quot;);

        data+=vec[ii];

       }

ofstream out(output.c_str()); // Funktioniert nicht ?
out &lt;&lt; data &lt;&lt; endl;
out.close();

cout &lt;&lt;&quot;Datei &quot; &lt;&lt; output &lt;&lt;&quot; erzeugt!&quot; &lt;&lt;endl;
cin &gt;&gt; find1;

return 0;

};
</code></pre>
<p>Das Problem ist da in meinem Konstrukt, dass irgenwie immer die Funktion abgebrochen wird . Wie muss ich den Ausgabestream gestalten, dass es zu keinem Programmabbruch kommt? Gibt es eine elegantere Lösung um den String data in die Datei zu bekommen?</p>
<p>Danke.</p>
<p>Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132645/problem-mit-abbruch-der-programmes-bei-auslesen-eines-strings-in-eine-datei</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 14:10:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132645.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Jan 2006 10:50:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 10:50:58 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;string&gt; 

using namespace std; 
int main(int argc, char **argv)

 { 
  string str; 
  string dateiname;
  vector&lt;string&gt; vec;
  string output;

  string data; 

  int a=0;                 // VARIABLENDEKLARATION a... Zeilenzählvariabel
  int ii=0;
  int i=0;
  int find1;

int z =0; // Abbruchvariable für While Schleife!

while (z==0) 
{ 
        getline(cin, dateiname); 
        ifstream ifs(dateiname.c_str());

                if (!ifs) 
                { 
                cout &lt;&lt; &quot;Datei existiert nicht! &quot; &lt;&lt; endl; 
                cout &lt;&lt; &quot;Bitte um Neueingabe &quot; &lt;&lt; endl; 
                } 
                else 
                { 
                cout &lt;&lt; &quot;Datei geoeffnet!&quot; &lt;&lt; endl; 

                while (!ifs.eof()) {  // Einlesen der DATEI
                getline(ifs, str); 
                vec.push_back(str);                     // Zeile wird an Vektor 
                a++;  
                z=1; 
                } 

            cout &lt;&lt; &quot;Bitte geben Sie die Output Datei an (nur Namen).&quot; &lt;&lt; endl;
            getline(cin, output);

                 }  

} 

    for (ii=0;ii&lt;a;ii++)         // FOR SCHLEIFE die geöffnete Datei durchläuft

    {
        vec[ii].insert(126,&quot;;&quot;);
        vec[ii].insert(132,&quot;;&quot;);
        vec[ii].insert(134,&quot;;&quot;);
        vec[ii].insert(136,&quot;;&quot;);
        vec[ii].insert(141,&quot;;;&quot;);

        data+=vec[ii];

       }

ofstream out(output.c_str()); // Funktioniert nicht ?
out &lt;&lt; data &lt;&lt; endl;
out.close();

cout &lt;&lt;&quot;Datei &quot; &lt;&lt; output &lt;&lt;&quot; erzeugt!&quot; &lt;&lt;endl;
cin &gt;&gt; find1;

return 0;

};
</code></pre>
<p>Das Problem ist da in meinem Konstrukt, dass irgenwie immer die Funktion abgebrochen wird . Wie muss ich den Ausgabestream gestalten, dass es zu keinem Programmabbruch kommt? Gibt es eine elegantere Lösung um den String data in die Datei zu bekommen?</p>
<p>Danke.</p>
<p>Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964377</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 10:50:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 10:54:51 GMT]]></title><description><![CDATA[<p>Wie genau sieht denn dieser Abbruch aus? Ein &quot;funktioniert nicht&quot; ist nicht ausreichend für die Diagnose.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964380</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 12 Jan 2006 10:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:20:40 GMT]]></title><description><![CDATA[<p>Der String wird nicht in die .csv Datei geschrieben. Das Programm bricht ab. Normalerweise müsste es auf die Eingabe ganz am Schluss warten. Das passiert aber nicht.</p>
<p>Danke.<br />
Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964395</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:20:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:24:51 GMT]]></title><description><![CDATA[<p>Prüf' doch mal nach dem Öffnen des Ausgabefiles, ob das überhaupt geklappt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964400</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:35:28 GMT]]></title><description><![CDATA[<p>Ja das hab ich geprüft.<br />
Das File wird eingelesen.</p>
<p>nach die lange FOR Schleife funktioniert.</p>
<p>Irgendwas danach passt nicht. Ich weiß leider nicht was.</p>
<p>Danke<br />
johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964408</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:35:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:39:57 GMT]]></title><description><![CDATA[<p>Wenn ich mir deinen Code ansehe:<br />
* Du prüfst, ob die Eingabedatei geöffnet werden konnte (da oben ist alles OK)<br />
* Du prüfst <strong>NICHT</strong>, ob die Ausgabedatei (out) geöffnet werden konnte - wenn der Dateiname falsch war, hast du afaik &quot;undefined behaviour&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964417</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:42:53 GMT]]></title><description><![CDATA[<p>es ist schon mal gegangen komsicherweise. der code ist von einer früheren version abgeleitet.</p>
<p>Wird hier nicht die Datei automatisch angelegt?</p>
<p>Wenn nicht, was muss ich ändern?</p>
<p>Danke.</p>
<p>Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964423</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:51:33 GMT]]></title><description><![CDATA[<p>Wenn du einen legalen Dateinamen angibst (und entsprechende Rechte besitzt), wird die Datei angelegt. Andernfalls bekommst du einen Fehlerstatus, den du abfangen müßtest:</p>
<pre><code class="language-cpp">ofstream out(output.c_str());
if(!out)
  //Fehlerbehandlung (z.B. neuen Namen abfragen)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/964435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964435</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 11:57:55 GMT]]></title><description><![CDATA[<p>Vielleicht sollte man noch eine Fehlerbehandlung (try/catch) bei den inserts einfügen. Falls der string im vector nicht lang genug ist käme hier sonst eine Exception.<br />
Das a ist unnötig. vector::size() geht hier auch.<br />
Die Ausgabe könnte auch innnerhalb der for-Schleife erfolgen. So entfällt das aufaddieren des strings.<br />
Die Einrückungen könnten schöner sein.<br />
Das z sollte aus der while-Schleife raus. Einmal zuweisen genügt. Den Typ von z könnte man in bool wandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964443</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 Jan 2006 11:57:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 12:08:12 GMT]]></title><description><![CDATA[<p>Ich habe jtzt die Fehlerabfrage eingefügt und er schreibt das File nicht. An den Benutzrechten kann es nicht liegen, weil ich auch versucht hab das File auf meinen USB Stick zu schreiben.</p>
<p>Kann mir bitte wer eine Alternative zum Ausgeben des Files schreiben?</p>
<p>Wäre echt nett.</p>
<p>Danke<br />
Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964451</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 12:29:19 GMT]]></title><description><![CDATA[<p>Du brauchst hier keine Alternative.<br />
Wie CStoll schon geschrieben hat, wenn der Dateiname legal ist, der evtl. angegebene Pfad existiert und du die entsprechenden Rechte hast, dann wird die Datei auch geschrieben. Was steht denn in output?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964474</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 12:32:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;sstream&gt;
#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;string&gt; 

using namespace std; 
int main(int argc, char **argv)

 { 
  string str; 
  string dateiname;
  vector&lt;string&gt; vec;
  string output;

  string data;           // Auslese String, in welchen die Daten geschrieben werden

        int a=0;                 // VARIABLENDEKLARATION a... Zeilenzählvariabel
        int ii=0;
        int i=0;
        int find1;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*    TEXTFILTER PROGRAMM                             *&quot;&lt;&lt;endl;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bitte zu oeffnende Datei mit PFAD eingeben    *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      PFAD unbeding mit \\ angeben!                 *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bsp.: C:\\dateien\\filename                   *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;

getline(cin, dateiname); 
ifstream ifs(dateiname.c_str());

while (!ifs.eof()) {  // Einlesen der DATEI
getline(ifs, str);                     // Datei wird Zeile in Vector vec geschrieben
vec.push_back(str);                     // Zeile wird an Vektor 
a++;  

} 

    for (ii=0;ii&lt;a;ii++)         // FOR SCHLEIFE die geöffnete Datei durchläuft

    { 
        vec[ii].insert(4,&quot;;&quot;);
        vec[ii].insert(7,&quot;;&quot;);
        vec[ii].insert(9,&quot;;&quot;);
        vec[ii].insert(11,&quot;;&quot;);
        vec[ii].insert(14,&quot;;&quot;);             

        vec[ii].insert(126,&quot;;&quot;);
        vec[ii].insert(132,&quot;;&quot;);
        vec[ii].insert(134,&quot;;&quot;);
        vec[ii].insert(136,&quot;;&quot;);
        vec[ii].insert(141,&quot;;;\n&quot;);

        data+=vec[ii];

       }

cout &lt;&lt; data &lt;&lt; endl; // Ausgabe am Bildschirm funktioniert

ofstream out (&quot;C:\testtest.csv&quot;); // Datei wird nicht geschrieben
                                  //verwende Dev-C++ 4.9.9.2 kann es sein, dass es am Compiler liegt? 
out &lt;&lt; data &lt;&lt; endl;
out.close();

if (!out)

{
cout &lt;&lt; &quot;Die Ausgabe in die Datei hat nicht funktioniert&quot; &lt;&lt; endl;
}

else
{
cout &lt;&lt;&quot;Datei erzeugt!&quot; &lt;&lt;endl;   
}

cin &gt;&gt; find1;

};
</code></pre>
<p>Wie im Kommentar angefügt, funktioniert die Ausgabe des Strings am Bildschirm, jedoch nicht das Schreiben in den Stream bzw. in die Datei.</p>
<p>Irgendwas ist das verhext... <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>
<p>Bitte um Hilfe.</p>
<p>Danke<br />
Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964475</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 12:54:51 GMT]]></title><description><![CDATA[<p>keboo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">ofstream out (&quot;C:\testtest.csv&quot;); // Datei wird nicht geschrieben
</code></pre>
</blockquote>
<p>Also das ist bestimmt kein legaler Dateiname - \t wird vom Compiler durch ein Tabulator-Zeichen ersetzt.<br />
(@USB-Stick: schau dir den Stick mal an, ob eventuell der Schreibschutz eingeschaltet ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964514</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 12:57:52 GMT]]></title><description><![CDATA[<p>Du solltest den Test if( !out) direkt nach dem Instanziieren von out machen. In deinem Quelltext ist out ja schon zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964520</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 13:58:20 GMT]]></title><description><![CDATA[<p>Also so</p>
<pre><code class="language-cpp">ofstream out (&quot;C:\\testtest.csv&quot;); 
if (!out)
{
   cout &lt;&lt; &quot;Die Ausgabe in die Datei hat nicht funktioniert&quot; &lt;&lt; endl;
} else
{
   out &lt;&lt; data &lt;&lt; endl;
   out.close();
   cout &lt;&lt;&quot;Datei erzeugt!&quot; &lt;&lt;endl;  
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/964525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964525</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 Jan 2006 13:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 13:01:50 GMT]]></title><description><![CDATA[<p>Das war leider auch nicht die Lösung. Es geht auch mit c:\\testtest.csv nicht.</p>
<p>Das kommt mir ein wenig spanisch vor das ganze.</p>
<p>Wär mir echt sehr geholfen, wenn mir da wer weiterhelfen kann.</p>
<p>Danke,</p>
<p>johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964534</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 13:01:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 13:35:43 GMT]]></title><description><![CDATA[<p>Kann es sein, dass beim ofstream Befehl irgendetwas nicht passt?</p>
<p>Bin schon leicht verzweifelt, da ich keine Ahnung habe, was da nicht passt.</p>
<p>johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964579</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Thu, 12 Jan 2006 13:35:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Abbruch der Programmes bei Auslesen eines Strings in eine Datei on Thu, 12 Jan 2006 14:02:58 GMT]]></title><description><![CDATA[<p>So wie es da steht sollte es funktionieren. Bist du mal mit einem Debugger durchgegangen? Wechsle mal das Verzeichnis bzw. den Dateinamen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964610</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 Jan 2006 14:02:58 GMT</pubDate></item></channel></rss>