<?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 beim speichern vom Benutzer gewählten Namen geben]]></title><description><![CDATA[<p>Also ich möchte eine Datei speichern.<br />
Der Benutzer kann sich die Dateiendung selber aussuchen...<br />
Erstmal mein Code:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Dateiendung(odt=1;txt=2): &quot; &lt;&lt; endl;
	int d;
	cin &gt;&gt; d;
	switch(d)  {
		case 1:
	f.open(&quot;test.odt&quot;,ios::out);
	break;
		case 2:
    f.open(&quot;test.txt&quot;,ios::out);
	break;
		default:
    cout &lt;&lt; &quot;Ungültige Dateiendung!&quot; &lt;&lt; endl;
	break;
	}
</code></pre>
<p>Wie kann ich nun den Namen jedes mal ändern.<br />
Also wieder eine &quot;cout-Abfrage&quot; ,in string --&gt; nun habe ich den Namen.<br />
Aber ich kann dann doch keine Variable zwischen den Anführungszeichen einbauen.<br />
Also dieses &quot;test&quot; soll der Benutzer jedesmal frei wählen können und er soll sich selber einen Namen ausdenken...daher fällt eine switch-case Variante aus.</p>
<p>mfg<br />
Summernoon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215429/datei-beim-speichern-vom-benutzer-gewählten-namen-geben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 07:53:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215429.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jun 2008 20:31:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Tue, 10 Jun 2008 20:31:25 GMT]]></title><description><![CDATA[<p>Also ich möchte eine Datei speichern.<br />
Der Benutzer kann sich die Dateiendung selber aussuchen...<br />
Erstmal mein Code:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Dateiendung(odt=1;txt=2): &quot; &lt;&lt; endl;
	int d;
	cin &gt;&gt; d;
	switch(d)  {
		case 1:
	f.open(&quot;test.odt&quot;,ios::out);
	break;
		case 2:
    f.open(&quot;test.txt&quot;,ios::out);
	break;
		default:
    cout &lt;&lt; &quot;Ungültige Dateiendung!&quot; &lt;&lt; endl;
	break;
	}
</code></pre>
<p>Wie kann ich nun den Namen jedes mal ändern.<br />
Also wieder eine &quot;cout-Abfrage&quot; ,in string --&gt; nun habe ich den Namen.<br />
Aber ich kann dann doch keine Variable zwischen den Anführungszeichen einbauen.<br />
Also dieses &quot;test&quot; soll der Benutzer jedesmal frei wählen können und er soll sich selber einen Namen ausdenken...daher fällt eine switch-case Variante aus.</p>
<p>mfg<br />
Summernoon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526661</guid><dc:creator><![CDATA[Summernoon]]></dc:creator><pubDate>Tue, 10 Jun 2008 20:31:25 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Tue, 10 Jun 2008 20:56:58 GMT]]></title><description><![CDATA[<p>Hey Ya</p>
<p>Naja, dein Benutzer könnte einfach den ganzen Namen eintippen...</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;string&gt;

using namespace std;

int main() {
    cout &lt;&lt; &quot;Bitte Dateinamen eingeben: &quot;;
    string name;
    cin &gt;&gt; name;

    fstream file(name.c_str());

    return 0;
}
</code></pre>
<p>Die Endung anzuhängen geht mit einem C++ string allerdings ebenfalls denkbar einfach:</p>
<pre><code class="language-cpp">name += &quot;.txt&quot;;
</code></pre>
<p>Da seh' ich wirklich kein Problem...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526670</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Tue, 10 Jun 2008 20:56:58 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 12:34:48 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort;funktioniert.</p>
<p>Habe allerdings noch 2 Fragen zum Verständnis:<br />
1)gibt</p>
<pre><code class="language-cpp">c_str()
</code></pre>
<p>an, dass nach dem Punkt im Namen die Dateiendung folgt ?</p>
<p>2)Wodurch unterscheiden sich diese beiden Varianten:</p>
<pre><code class="language-cpp">fstream file(name.c_str());
</code></pre>
<p>und</p>
<pre><code class="language-cpp">f.open(&quot;test.txt&quot;,ios::out);
</code></pre>
<p>Jetzt wird keine Datei mehr erstellt.</p>
<p>mfg<br />
Summernoon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1526996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1526996</guid><dc:creator><![CDATA[Summernoon]]></dc:creator><pubDate>Wed, 11 Jun 2008 12:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 12:37:26 GMT]]></title><description><![CDATA[<p>Summernoon schrieb:</p>
<blockquote>
<p>Habe allerdings noch 2 Fragen zum Verständnis:<br />
1)gibt</p>
<pre><code class="language-cpp">c_str()
</code></pre>
<p>an, dass nach dem Punkt im Namen die Dateiendung folgt ?</p>
</blockquote>
<p>Nein. c_str() ist eine Funktion der Klasse std::string und liefert einen const char* zurück, für die Aufrufe die nicht mit std::string laufen. Die Dateiendung wird vorher z.b. wie folgt angehangen:</p>
<pre><code class="language-cpp">std::string datei = &quot;test&quot;;
datei += &quot;.txt&quot;; // std::string erlaubt direktes &quot;aufaddieren&quot; von Strings
</code></pre>
<p>Summernoon schrieb:</p>
<blockquote>
<p>2)Wodurch unterscheiden sich diese beiden Varianten:</p>
<pre><code class="language-cpp">fstream file(name.c_str());
</code></pre>
<p>und</p>
<pre><code class="language-cpp">f.open(&quot;test.txt&quot;,ios::out);
</code></pre>
</blockquote>
<p>Dadurch das das eine C ist, und das andere C++ (Unter C++ verwendet man die Streamklassen).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527003</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 11 Jun 2008 12:37:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 12:42:42 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Summernoon schrieb:</p>
<blockquote>
<p>2)Wodurch unterscheiden sich diese beiden Varianten:</p>
<pre><code class="language-cpp">fstream file(name.c_str());
</code></pre>
<p>und</p>
<pre><code class="language-cpp">f.open(&quot;test.txt&quot;,ios::out);
</code></pre>
</blockquote>
<p>Dadurch das das eine C ist, und das andere C++ (Unter C++ verwendet man die Streamklassen).</p>
</blockquote>
<p>Lass Dir keinen Unfug erzählen. fstreams und vor allem die c_str-Methode habe ich in C noch nicht gesehen (ja ich weiß, asc hat sich vermutlich nur verlesen :D)</p>
<p>Das erste erzeugt einen fstream &quot;file&quot; und eröffnet gleich eine Datei. Dabei wird der Dateiname aus der Variablen &quot;name&quot; entnommen. Die Datei wird zum Lesen und Schreiben geöffnet, aber nicht erzeugt, falls sie noch nicht existiert.</p>
<p>Die zweite Variante öffnet eine Datei auf einem bereits vorher angelegten fstream &quot;f&quot;, nimmt dabei den fest verdrahteten Dateinamen &quot;test.txt&quot; und eröffnet die Datei nur zum Schreiben, wobei sie auch erzeugt wird, wenn sie nicht existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527010</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 11 Jun 2008 12:42:42 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 16:20:20 GMT]]></title><description><![CDATA[<p>Danke für die Antworten.</p>
<p>EDIT: Ich habe</p>
<pre><code class="language-cpp">#include&lt;string&gt;
</code></pre>
<p>.</p>
<p>1)Das mit</p>
<pre><code class="language-cpp">.c_str()
</code></pre>
<p>ist mir immer noch nicht klarer geworden.</p>
<p>2)kann man die Dateiendung auch als Variable machen ?<br />
theoretisch so:</p>
<pre><code class="language-cpp">name += endung;
</code></pre>
<p>(klappt so auf jeden fall nicht)</p>
<p>3)kann ich die Zeile so ändern ?</p>
<pre><code class="language-cpp">f.open(name.c_str());
f &lt;&lt; stringMitText &lt;&lt; endl;
f.close();
</code></pre>
<p>--&gt; Es soll eine Datei erstellt werden.</p>
<p>mfg<br />
Summernoon[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527160</guid><dc:creator><![CDATA[Summernoon]]></dc:creator><pubDate>Wed, 11 Jun 2008 16:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 16:10:59 GMT]]></title><description><![CDATA[<p>.c_str () gibt dir einen C-String zurück, da gewisse Funktionen einen solchen erwarten und keinen std::string.</p>
<p>Zu den anderen Problemen würde es sicher helfen &lt;string&gt; zu inkludieren. (Wie schon erwähnt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527164</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 11 Jun 2008 16:10:59 GMT</pubDate></item><item><title><![CDATA[Reply to Datei beim speichern vom Benutzer gewählten Namen geben on Wed, 11 Jun 2008 16:54:57 GMT]]></title><description><![CDATA[<p>es gibt ja folgende möglichkeiten:</p>
<pre><code class="language-cpp">char* test0 = &quot;test mit charpointer&quot;;
char test1[] = &quot;test mit chararray&quot;;
std::string test2 = &quot;test mit string0&quot;;
std::string test3(&quot;test mit string1&quot;);
</code></pre>
<p>ist das einleuchtend?<br />
einmal ein char pointer der auf eine zeichenkette aus chars zeigt<br />
ein char array das zeicehn beinhaltet<br />
und der STanDart string mit 2 verschiedenen konstruktoren</p>
<p>wenn man nun eine zeichenkette in einer funktion haben will<br />
kann man folgendes machen:</p>
<pre><code class="language-cpp">#include &lt;string&gt;

void testfunc0(std::string const&amp; teststring)
{
    // bla bla bla...
}

void testfunc1(char *test)
{
    // bla bla bla...
}

int main()
{
    char* test0 = &quot;test mit charpointer&quot;;
    char test1[] = &quot;test mit chararray&quot;;
    std::string test2 = &quot;test mit string0&quot;;
    std::string test3(&quot;test mit string1&quot;);

    testfunc0(test2);    // geht
    testfunc0(test3);    // geht auch
   testfunc0(test0);     // geht nicht und auch testfunc0(&amp;test0) wird nicht klappen
   testfunc0(test1);     // geht auch nicht

    testfunc1(test0);    // geht
    testfunc1(test1);    // geht auch
   testfunc1(test2);     // klappt nicht
   testfunc1(test3);     // klappt auch nicht

    testfunc1( test2.c_str() );  // geht
}
</code></pre>
<p>ergo ist die string methode c_str() dazu da um aus einem STanDart string eine charpointer/chararray zeichenkette zu machen(ok sind eh nur zeiger;))</p>
<p>denn viele (alte) funktionen erwarten einen char zeiger auf eine zeichenkette...</p>
<p>zu deiner zweiten frage:</p>
<p>ja man kann das natürlich als dateiendung machen...</p>
<p>aber wenn du die beide separat abfragst kansnt dud ich fragen obs nicht sinnvoller wäre wenn du sie in einem schritt holst</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
    string name, endung;
    cout&lt;&lt;&quot;Dateiname: &quot;;
    cin&gt;&gt; name;
    cout&lt;&lt;&quot;Dateiendung: &quot;;
    cin&gt;&gt; endung;

    string ganzername;
    ganzername = name + &quot;.&quot;;
    ganzername = ganzername + endung;   // += verwende ich deshalb nicht weil ich nicht weis ob es den operator gibt, sprich ob er überladen ist ;)

    ostream out;
    out.open(ganzername.c_str(), ios::out | ios::in);  // kA ob das richtig ist, ich hab bis jez nix mit dateien zu tun gehabt
}
</code></pre>
<p>so sollte das ungefähr klappen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527180</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 11 Jun 2008 16:54:57 GMT</pubDate></item></channel></rss>