<?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]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine vorgegebene Methode:</p>
<pre><code class="language-cpp">void CKrypto::file_code(const char *file_in, const char *file_out, int dir)
{
    if(dir != 1 &amp;&amp; dir !=-1)
        throw invalid_argument(errTxt[5]);
    fstream istr(file_in, ios_base::in | ios_base::binary);
    if(!istr.is_open( ))
        throw domain_error(errTxt[3]);//hier bekomme ich den Fehler
    fstream ostr(file_out, ios_base::out | ios_base::binary);
    if(!ostr.is_open( ))
        throw domain_error(errTxt[4]);
    int nread;
    char * readbuf= new char[_block_length];
    do
    {
        istr.read(readbuf, _block_length);
        nread= istr.gcount();
        if(nread&gt;0)
        {
          switch(dir)
            {
            case 1:    encode(readbuf, nread);
                break;
            case -1:  decode(readbuf, nread);
                break;
            }
            ostr.write(readbuf, nread);
            if(ostr.fail())
                throw domain_error(errTxt[2]);
        }
    }
    while(!istr.eof( ));
    delete [ ] readbuf;
</code></pre>
<p>Fehler beim Öffnen der Datei.<br />
So lese ich die Daten ein.</p>
<pre><code class="language-cpp">char *file_in, *file_out, *key, c_key;
file_in = new char;
*file_in = NULL;
file_out = new char;
*file_out = NULL;

cin.get(file_in, 30);
cin.ignore();

cin.get(file_out, 30);
cin.ignore();

Vigenere.file_code(file_in, file_out, 1);
</code></pre>
<p>Könnt ihr mir vielleicht sagen, warum ich diesen Fehler bekomme?</p>
<p>Vielen Dank schon mal, ihr seid super.<br />
Seaman</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242939/fstream</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 16:31:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242939.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jun 2009 00:02:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 00:02:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine vorgegebene Methode:</p>
<pre><code class="language-cpp">void CKrypto::file_code(const char *file_in, const char *file_out, int dir)
{
    if(dir != 1 &amp;&amp; dir !=-1)
        throw invalid_argument(errTxt[5]);
    fstream istr(file_in, ios_base::in | ios_base::binary);
    if(!istr.is_open( ))
        throw domain_error(errTxt[3]);//hier bekomme ich den Fehler
    fstream ostr(file_out, ios_base::out | ios_base::binary);
    if(!ostr.is_open( ))
        throw domain_error(errTxt[4]);
    int nread;
    char * readbuf= new char[_block_length];
    do
    {
        istr.read(readbuf, _block_length);
        nread= istr.gcount();
        if(nread&gt;0)
        {
          switch(dir)
            {
            case 1:    encode(readbuf, nread);
                break;
            case -1:  decode(readbuf, nread);
                break;
            }
            ostr.write(readbuf, nread);
            if(ostr.fail())
                throw domain_error(errTxt[2]);
        }
    }
    while(!istr.eof( ));
    delete [ ] readbuf;
</code></pre>
<p>Fehler beim Öffnen der Datei.<br />
So lese ich die Daten ein.</p>
<pre><code class="language-cpp">char *file_in, *file_out, *key, c_key;
file_in = new char;
*file_in = NULL;
file_out = new char;
*file_out = NULL;

cin.get(file_in, 30);
cin.ignore();

cin.get(file_out, 30);
cin.ignore();

Vigenere.file_code(file_in, file_out, 1);
</code></pre>
<p>Könnt ihr mir vielleicht sagen, warum ich diesen Fehler bekomme?</p>
<p>Vielen Dank schon mal, ihr seid super.<br />
Seaman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724216</guid><dc:creator><![CDATA[Seaman]]></dc:creator><pubDate>Wed, 10 Jun 2009 00:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 06:22:08 GMT]]></title><description><![CDATA[<p>Hmm ich sehe nirgends das du das File je geöffnet hast!?<br />
Alleine der Konstruktoraufruf von fstream bewirkt nicht gleichzeitig das öffnen des Files.<br />
Wenn du uns sagst was du machen willst, können wir dir vielleicht eine bessere Methode vorschlagen um das ganze zu lösen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724235</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 10 Jun 2009 06:22:08 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 06:49:30 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Alleine der Konstruktoraufruf von fstream bewirkt nicht gleichzeitig das öffnen des Files.</p>
</blockquote>
<p>Doch, sollte aber so sein, oder verstehe ich etwas falsch?</p>
<blockquote>
<p>fstream ( );<br />
explicit fstream ( const char * filename,<br />
ios_base::openmode mode = ios_base::in | ios_base::out );</p>
<p>(...)</p>
<p>Additionally, when the second constructor version is used, <strong>the stream is associated with a physical file as if a call to the member function open with the same parameters</strong> was made.</p>
</blockquote>
<p>Quelle: <a href="http://www.cplusplus.com/reference/iostream/fstream/fstream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/fstream/fstream/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724247</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Wed, 10 Jun 2009 06:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 06:49:17 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Alleine der Konstruktoraufruf von fstream bewirkt nicht gleichzeitig das öffnen des Files.</p>
</blockquote>
<p>Doch. Die in diesem Fall aufgerufene überladene Konstruktorversion öffnet das File gleich - wenn es denn existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724248</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 10 Jun 2009 06:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 06:51:24 GMT]]></title><description><![CDATA[<p>Höö?Ok ich hatte es immer explizit gemacht.Gut dann öffnet er es gleich.Mein Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724249</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 10 Jun 2009 06:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 06:57:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char *file_in, *file_out, *key, c_key;
file_in = new char; //hier passt nur !ein! Zeichen rein. Soll das so sein?
*file_in = NULL;
file_out = new char; //Hier auch.
*file_out = NULL;

cin.get(file_in, 30); //das wird undefiniert, file_in fasst nur ein Zeichen, aber 30 sollen gelesen werden...
cin.ignore();

cin.get(file_out, 30); //das auch
cin.ignore();

Vigenere.file_code(file_in, file_out, 1);
</code></pre>
<p>Bessere Variante:</p>
<pre><code class="language-cpp">std::string fileIn;
std::string fileOut;
std::getline(std::cin, fileIn, '\n');
std::getline(std::cin, fileOut, '\n');
Vigenere.file_code(fileIn.c_str(), fileOut.c_str(), 1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1724252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724252</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 10 Jun 2009 06:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 07:04:45 GMT]]></title><description><![CDATA[<p>Entschuldigt die banalität meines Fehlers, aber meine Dateien waren einfach nur im falschen Ordner. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich muss diese Methode verwenden, Uni-Aufgabe.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724258</guid><dc:creator><![CDATA[Seaman]]></dc:creator><pubDate>Wed, 10 Jun 2009 07:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 07:10:03 GMT]]></title><description><![CDATA[<p>Seaman schrieb:</p>
<blockquote>
<p>Entschuldigt die banalität meines Fehlers, aber meine Dateien waren einfach nur im falschen Ordner. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich muss diese Methode verwenden, Uni-Aufgabe.</p>
<p>Vielen Dank</p>
</blockquote>
<p>Totzdem produzierst Du undefiniertes Verhalten. Wenn es funktioniert, ist das im Moment reiner Zufall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724262</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 10 Jun 2009 07:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 07:36:15 GMT]]></title><description><![CDATA[<p>hat nichts mit dem thema zu tun:</p>
<pre><code class="language-cpp">void CKrypto::file_code(const char *file_in, const char *file_out, bool encrypt)
{
    if(dir != true &amp;&amp; dir != false)
        throw invalid_argument(errTxt[5]);
    ifstream istr(file_in,ios_base::binary);
    if(!istr)
        throw domain_error(errTxt[3]);//hier bekomme ich den Fehler
    ofstream ostr(file_out,ios_base::binary);
    if(!ostr)
        throw domain_error(errTxt[4]);
    char readbuf[_block_length];
    do
    {
        istr.read(readbuf, _block_length);
        int nread= istr.gcount();
        if(nread&gt;0)
        {
          switch(dir)
            {
            case true: encode(readbuf, nread);
                break;
            case false: decode(readbuf, nread);
                break;
            default:
                assert(false);
            }
            ostr.write(readbuf, nread);
            if(!ostr)
                throw domain_error(errTxt[2]);
        }
    }while(!istr);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1724279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724279</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 10 Jun 2009 07:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to fstream on Wed, 10 Jun 2009 12:57:19 GMT]]></title><description><![CDATA[<p>Seaman schrieb:</p>
<blockquote>
<p>Ich muss diese Methode verwenden, Uni-Aufgabe.</p>
</blockquote>
<p>Ich denke nicht, dass du fehlerhaft programmieren <em>musst</em>. <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>
<p>Ersetze wenigstens die <code>new char</code> durch <code>new char[n]</code> , wobei <code>n</code> eine sicher genügend grosse Puffergrösse darstellt. Und vergiss auch nicht, den Speicher mit <code>delete[]</code> wieder freizugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724484</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 10 Jun 2009 12:57:19 GMT</pubDate></item></channel></rss>