<?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[const char und const char*]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ursprünglich folgendes getan:</p>
<pre><code>sprintf(filename, &quot;xxxx.dat&quot;);
FILE* pfile = fopen(filename, &quot;r&quot;);
</code></pre>
<p>also per sprintf ein char erzeugt und die Datei mit dem Namen dann geöffnet.</p>
<p>Nun möchte ich das erzeugen des Dateinamens aber als Funktion auslagern:</p>
<pre><code>const char GetFilename() {
    char filename[100];
    sprintf(filename, &quot;P2_testbeam_27_05_2015/data/ch00/run_1_ch00.dat&quot;);
    return filename;
}
</code></pre>
<p>und später:</p>
<pre><code>FILE* pfile = fopen(GetFilename, &quot;r&quot;);
</code></pre>
<p>Ich bekomme folgende Compilermeldung:</p>
<pre><code>error: cannot convert ‘const char (*)()’ to ‘const char*’ for argument ‘1’ to ‘FILE* fopen(const char*, const char*)’
</code></pre>
<p>Hat dazu jemand eine Idee?</p>
<p>Ich weiß, ich bin Anfänger und (noch) etwas verloren. Vielen lieben Dank!</p>
<p>Juniata</p>
<p>~Edit durch Arcoth: Tags und Formatierung~</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333399/const-char-und-const-char</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 05:19:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333399.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Jul 2015 10:37:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const char und const char* on Thu, 02 Jul 2015 10:37:59 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ursprünglich folgendes getan:</p>
<pre><code>sprintf(filename, &quot;xxxx.dat&quot;);
FILE* pfile = fopen(filename, &quot;r&quot;);
</code></pre>
<p>also per sprintf ein char erzeugt und die Datei mit dem Namen dann geöffnet.</p>
<p>Nun möchte ich das erzeugen des Dateinamens aber als Funktion auslagern:</p>
<pre><code>const char GetFilename() {
    char filename[100];
    sprintf(filename, &quot;P2_testbeam_27_05_2015/data/ch00/run_1_ch00.dat&quot;);
    return filename;
}
</code></pre>
<p>und später:</p>
<pre><code>FILE* pfile = fopen(GetFilename, &quot;r&quot;);
</code></pre>
<p>Ich bekomme folgende Compilermeldung:</p>
<pre><code>error: cannot convert ‘const char (*)()’ to ‘const char*’ for argument ‘1’ to ‘FILE* fopen(const char*, const char*)’
</code></pre>
<p>Hat dazu jemand eine Idee?</p>
<p>Ich weiß, ich bin Anfänger und (noch) etwas verloren. Vielen lieben Dank!</p>
<p>Juniata</p>
<p>~Edit durch Arcoth: Tags und Formatierung~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2458511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2458511</guid><dc:creator><![CDATA[Juniata]]></dc:creator><pubDate>Thu, 02 Jul 2015 10:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to const char und const char* on Thu, 02 Jul 2015 10:40:03 GMT]]></title><description><![CDATA[<p>Um eine Funktion ohne Argumente aufzurufen, brauchst du auch ein leeres Klammernpaar:</p>
<pre><code>fopen(GetFilename(), &quot;r&quot;);
</code></pre>
<p>ohne dieses übergibst du nämlich ein lvalue auf die Funktion selbst, welches in diesem Fall in einen Zeiger auf die Funktion zerfiel ( <code>char const(*)()</code> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2458512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2458512</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 02 Jul 2015 10:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to const char und const char* on Thu, 02 Jul 2015 10:47:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const char GetFilename() { 
    char filename[100]; 
    sprintf(filename, &quot;P2_testbeam_27_05_2015/data/ch00/run_1_ch00.dat&quot;); 
    return filename; 
}
</code></pre>
<p>1. fehlt da nen *<br />
und 2. nen static</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2458513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2458513</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 02 Jul 2015 10:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to const char und const char* on Thu, 02 Jul 2015 10:49:17 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>1. fehlt da nen *<br />
und 2. nen static</p>
</blockquote>
<p>und das sprintf ist unnötig</p>
<pre><code class="language-cpp">const char* GetFilename() { 
    return &quot;P2_testbeam_27_05_2015/data/ch00/run_1_ch00.dat&quot;; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2458514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2458514</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Thu, 02 Jul 2015 10:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to const char und const char* on Thu, 02 Jul 2015 12:48:08 GMT]]></title><description><![CDATA[<p>Das <code>const char*</code> und <code>FILE*</code> ist unnötig. Nimm <code>std::string</code> und <code>std::fstream</code> , wir sind hier nicht bei C. Oder du bist im falschen Forum gelandet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2458541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2458541</guid><dc:creator><![CDATA[patrick246]]></dc:creator><pubDate>Thu, 02 Jul 2015 12:48:08 GMT</pubDate></item></channel></rss>