<?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[datei erstellen falls nicht existent]]></title><description><![CDATA[<p>Naja, die Frage steht komplett im Titel. Wenn ich einfach</p>
<pre><code class="language-cpp">std::ifstream in(&quot;filename.dat&quot;);
</code></pre>
<p>schreibe läuft das Programm und läuft und läuft und stürzt dann ab (ich denke weil es kein eof findet, das kurz darauf als whileabbruchbedingung steht.</p>
<p>Vermutlich sehr simpel, aber ich hänge grad dran.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168689/datei-erstellen-falls-nicht-existent</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 12:15:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168689.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Dec 2006 17:16:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to datei erstellen falls nicht existent on Tue, 26 Dec 2006 17:16:20 GMT]]></title><description><![CDATA[<p>Naja, die Frage steht komplett im Titel. Wenn ich einfach</p>
<pre><code class="language-cpp">std::ifstream in(&quot;filename.dat&quot;);
</code></pre>
<p>schreibe läuft das Programm und läuft und läuft und stürzt dann ab (ich denke weil es kein eof findet, das kurz darauf als whileabbruchbedingung steht.</p>
<p>Vermutlich sehr simpel, aber ich hänge grad dran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198094</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Tue, 26 Dec 2006 17:16:20 GMT</pubDate></item><item><title><![CDATA[Reply to datei erstellen falls nicht existent on Tue, 26 Dec 2006 19:59:15 GMT]]></title><description><![CDATA[<p>Ich bin mir nicht ganz sicher (weil Anfänger):</p>
<p>Wenn du die Datei von Anfang an als ios::out öffnest, wird sie erstellt, falls nicht vorhanden.</p>
<p>Also würde ich es so anstellen:</p>
<pre><code class="language-cpp">fstream in(&quot;filename.dat&quot;, ios::out); //fstream statt ifstream. ios::out!
    dat.close();
    dat.open(&quot;filename.dat&quot;, ios::in);
</code></pre>
<p>Ich schätze, der Code ist nicht sehr gut... Vor allen Dingen braucht man eine Fallunterscheidung, falls die Datei vorhanden ist, falls nicht:</p>
<pre><code class="language-cpp">fstream in(&quot;filename.dat&quot;, ios::in);

    if(!in)                                //falls in == 0, sprich: nix geöffnet
        in.open(&quot;filename.dat&quot;, ios::out); //erstellt automatisch die Datei.
        // ... Schreibe in Datei, was nötig ist ... etc. //
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1198197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198197</guid><dc:creator><![CDATA[ne0r]]></dc:creator><pubDate>Tue, 26 Dec 2006 19:59:15 GMT</pubDate></item><item><title><![CDATA[Reply to datei erstellen falls nicht existent on Tue, 26 Dec 2006 20:36:05 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du kannst das auch mit boost machen. Da gibt es bei filesystem eine Funktion namens exist und der übergibst du den Dateinamen und bekommst true oder false.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198206</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 26 Dec 2006 20:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to datei erstellen falls nicht existent on Wed, 27 Dec 2006 03:31:54 GMT]]></title><description><![CDATA[<p>Vielen Dank, da ich aktuell noch keine nicht std Libraries nutze (glaub ich zumindest) werde ich (vorerst) noch dabei bleiben (für dieses Programm) und ne0rs Variante ausprobieren.</p>
<p>Danke</p>
<p>was mich aber stört:</p>
<p>bei diesem code</p>
<pre><code class="language-cpp">categories::categories(const string&amp; filename){
	ifstream in(filename.c_str(),ios::in);
	catfile=filename;
	while(!in.eof()){
		string temp;
		getline(in,temp);
		vcat.push_back(temp);
	}
}
</code></pre>
<p>kommt eben der Fehler. Hingegen bei diesem code:</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; catsfromfile(const std::string &amp;filename) //Einlesen der Dateinamen aus Datei
{
	std::ifstream fil(filename.c_str());
	std::string s;
	std::vector&lt;std::string&gt; res;
	while(std::getline(fil,s))
		res.push_back(tolower(s));
	return res;
}
</code></pre>
<p>funktionnierts auch wenn die datei nicht exisitiert... 2. ist so wie ich es am anfang gemacht habe, bin gerade dabei das Programm neu zu schreiben (bessere Struktur, enbringen des neu gelernten) und so wie ichs jetzt mache gehts nicht mehr. Irgendwie lustig.</p>
<p>ok, hab jetzt variante 1 umgeschrieben auf:</p>
<pre><code class="language-cpp">categories::categories(const string&amp; filename){
	ifstream in(filename.c_str(),ios::in);
	catfile=filename;
	string temp;
	while(getline(in,temp)){
		vcat.push_back(temp);
	}
}
</code></pre>
<p>und jetzt gehts da auch... hätte ich auch direkt drauf kommen können. Die Datei wird hier natürlich erst später erstellt, also wenn ich tatsächlich was reinschreibe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198287</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 27 Dec 2006 03:31:54 GMT</pubDate></item></channel></rss>