<?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 auslesen und hineinschreiben]]></title><description><![CDATA[<p>Hey Leute,<br />
ich melde mich auch mal wieder. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich würde gerne mal etwas Kritik für eine Funktion von mir ernten! Ob das so ok ist oder ob ihr noch Verbesserungsvorschläge habt. Bitte nicht zu high end! Ich bin immer noch Anfänger.<br />
Ach so und eine Frage habe ich auch:<br />
Ist perror ok? Ich hab für C++ nur so etwas gefunden:</p>
<pre><code>std::cerr &lt;&lt; std::strerror(errno) &lt;&lt; '\n';
</code></pre>
<p>Hab das nicht ausprobiert da mir perror sehr gefällt.</p>
<pre><code>bool EnvironmentSettings::WriteConfig(const char *file){
  std::fstream config_file;
  config_file.open(file, std::ios::in | std::ios::out);
  if(!config_file){
    perror(&quot;Config file not load!&quot;);
    return false;
  }
  std::string str_env_begin = &quot;#exenv&quot;;
  std::string str_env_end = &quot;#endexenv&quot;;
  std::vector&lt;std::string&gt; buffer;
  std::vector&lt;std::string&gt;::iterator start_pos;
  std::vector&lt;std::string&gt;::iterator end_pos;

  //read config and delete all environment variables
  std::copy(std::istream_iterator&lt;std::string&gt;(config_file), std::istream_iterator&lt;std::string&gt;(), std::back_inserter(buffer));
  config_file.close();
  start_pos = std::find(buffer.begin(), buffer.end(), str_env_begin);
  end_pos = std::find(buffer.begin(), buffer.end(), str_env_end);
  if(start_pos != buffer.end()){
    buffer.erase(start_pos, (end_pos+1));
  }

  //writing new config
  std::fstream new_config_file;
  new_config_file.open(&quot;/etc/envtmp&quot;, std::ios::out);
  if(!new_config_file){
    perror(&quot;New config file not load!&quot;);
    return false;
  }
  for(auto iter = buffer.begin(); iter != buffer.end(); iter++){
    new_config_file &lt;&lt; *iter;
  }

  new_config_file &lt;&lt; std::endl &lt;&lt; str_env_begin;
  for(EnvData *curenv = FirstEnvData; curenv; curenv = curenv-&gt;Next){
    if(curenv-&gt;Type == ENVVALUE_STRING){
      new_config_file &lt;&lt; std::endl &lt;&lt; curenv-&gt;Key &lt;&lt; &quot; = &quot; &lt;&lt; (char*)curenv-&gt;Value;
    }else{
      new_config_file &lt;&lt; std::endl &lt;&lt; curenv-&gt;Key &lt;&lt; &quot; = &quot; &lt;&lt; *(int*)curenv-&gt;Value;
    }
  }
  new_config_file &lt;&lt; std::endl &lt;&lt; str_env_end;

  new_config_file.close();

  //delete old config file and rename the tmp file
  std::remove(file);
  int result = rename(&quot;/etc/envtmp&quot;, file);
  if(result != 0){
    perror(&quot;Error renaming file&quot;);
    return false;
  }

  return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/322880/datei-auslesen-und-hineinschreiben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 12:38:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322880.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jan 2014 13:02:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:02:58 GMT]]></title><description><![CDATA[<p>Hey Leute,<br />
ich melde mich auch mal wieder. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich würde gerne mal etwas Kritik für eine Funktion von mir ernten! Ob das so ok ist oder ob ihr noch Verbesserungsvorschläge habt. Bitte nicht zu high end! Ich bin immer noch Anfänger.<br />
Ach so und eine Frage habe ich auch:<br />
Ist perror ok? Ich hab für C++ nur so etwas gefunden:</p>
<pre><code>std::cerr &lt;&lt; std::strerror(errno) &lt;&lt; '\n';
</code></pre>
<p>Hab das nicht ausprobiert da mir perror sehr gefällt.</p>
<pre><code>bool EnvironmentSettings::WriteConfig(const char *file){
  std::fstream config_file;
  config_file.open(file, std::ios::in | std::ios::out);
  if(!config_file){
    perror(&quot;Config file not load!&quot;);
    return false;
  }
  std::string str_env_begin = &quot;#exenv&quot;;
  std::string str_env_end = &quot;#endexenv&quot;;
  std::vector&lt;std::string&gt; buffer;
  std::vector&lt;std::string&gt;::iterator start_pos;
  std::vector&lt;std::string&gt;::iterator end_pos;

  //read config and delete all environment variables
  std::copy(std::istream_iterator&lt;std::string&gt;(config_file), std::istream_iterator&lt;std::string&gt;(), std::back_inserter(buffer));
  config_file.close();
  start_pos = std::find(buffer.begin(), buffer.end(), str_env_begin);
  end_pos = std::find(buffer.begin(), buffer.end(), str_env_end);
  if(start_pos != buffer.end()){
    buffer.erase(start_pos, (end_pos+1));
  }

  //writing new config
  std::fstream new_config_file;
  new_config_file.open(&quot;/etc/envtmp&quot;, std::ios::out);
  if(!new_config_file){
    perror(&quot;New config file not load!&quot;);
    return false;
  }
  for(auto iter = buffer.begin(); iter != buffer.end(); iter++){
    new_config_file &lt;&lt; *iter;
  }

  new_config_file &lt;&lt; std::endl &lt;&lt; str_env_begin;
  for(EnvData *curenv = FirstEnvData; curenv; curenv = curenv-&gt;Next){
    if(curenv-&gt;Type == ENVVALUE_STRING){
      new_config_file &lt;&lt; std::endl &lt;&lt; curenv-&gt;Key &lt;&lt; &quot; = &quot; &lt;&lt; (char*)curenv-&gt;Value;
    }else{
      new_config_file &lt;&lt; std::endl &lt;&lt; curenv-&gt;Key &lt;&lt; &quot; = &quot; &lt;&lt; *(int*)curenv-&gt;Value;
    }
  }
  new_config_file &lt;&lt; std::endl &lt;&lt; str_env_end;

  new_config_file.close();

  //delete old config file and rename the tmp file
  std::remove(file);
  int result = rename(&quot;/etc/envtmp&quot;, file);
  if(result != 0){
    perror(&quot;Error renaming file&quot;);
    return false;
  }

  return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376418</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:16:18 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<pre><code>//delete old config file and rename the tmp file
  std::remove(file);
</code></pre>
</blockquote>
<p>Interessant - scheint es tatsächlich zu geben. Ein Erbe aus alten C-Tagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376420</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:17:54 GMT]]></title><description><![CDATA[<p>Wie geht es besser udn was ist falsch? Bei mir baut das und es macht was es soll. Und ja ich weiß, dass das nicht heißt das es auch gleich das macht was ich denke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich werde mir das noch einmal genauer anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376422</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:24:21 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<pre><code>//delete old config file and rename the tmp file
  std::remove(file);
</code></pre>
</blockquote>
<p>Interessant - scheint es tatsächlich zu geben. Ein Erbe aus alten C-Tagen</p>
</blockquote>
<p>Hä, diese remove Funktion liegt doch gar nicht im namespace std?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376424</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:27:15 GMT]]></title><description><![CDATA[<p>Kann es sein das es mit und ohne std klappt?</p>
<p><a href="http://www.cplusplus.com/reference/algorithm/remove/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/remove/</a></p>
<p><a href="http://www.cplusplus.com/reference/cstdio/remove/" rel="nofollow">http://www.cplusplus.com/reference/cstdio/remove/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376425</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:33:39 GMT]]></title><description><![CDATA[<p>@TE:<br />
-Du solltest RAII nutzen.<br />
-perror und strerror ist eher C like.<br />
-ich würd ein bisschen mit typedef arbeiten, und die langen Typen nicht immer ausschreiben.<br />
-Das erase hat glaub eine Reallokation zurfolge. Das konnte man doch mit erase-remove-idiom verhindern.<br />
-Wieso sind da std::endl und C-Casts?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376429</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:35:07 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Kann es sein das es mit und ohne std klappt?</p>
<p><a href="http://www.cplusplus.com/reference/algorithm/remove/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/remove/</a></p>
<p><a href="http://www.cplusplus.com/reference/cstdio/remove/" rel="nofollow">http://www.cplusplus.com/reference/cstdio/remove/</a></p>
</blockquote>
<p>Eigentlich <code>::removeremove(file);</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376431</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:37:01 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Kann es sein das es mit und ohne std klappt?</p>
<p><a href="http://www.cplusplus.com/reference/algorithm/remove/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/remove/</a></p>
<p><a href="http://www.cplusplus.com/reference/cstdio/remove/" rel="nofollow">http://www.cplusplus.com/reference/cstdio/remove/</a></p>
</blockquote>
<p>Eigentlich <code>::removeremove(file);</code></p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> ::remove(file);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376434</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:41:04 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>@TE:<br />
-Du solltest RAII nutzen.<br />
-perror und strerror ist eher C like.<br />
-ich würd ein bisschen mit typedef arbeiten, und die langen Typen nicht immer ausschreiben.<br />
-Das erase hat glaub eine Reallokation zurfolge. Das konnte man doch mit erase-remove-idiom verhindern.<br />
-Wieso sind da std::endl und C-Casts?</p>
</blockquote>
<p>Danke erst einmal dafür.<br />
1. Kenne ich nicht vielleicht magst du dazu was sagen werde aber auch mal nachschauen.<br />
2. Ok das strerror auch eher C-like ist wusste ich nicht. Gibt es denn dafür etwas anderes in C++?<br />
3. Du meinst:</p>
<pre><code>typedef std::vector&lt;std::string&gt;::iterator vec_it;
</code></pre>
<p>oder?<br />
4. Werde ich einmal nachschlagen.<br />
5. std::endl mach ich raus. Für die C-Casts muss ich mich entschuldigen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Was mach ich nun mit dem remove? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2376435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376435</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:41:04 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 13:50:41 GMT]]></title><description><![CDATA[<p>Leider grad total wenig Zeit. Hab mal auf die schnelle einen Anfang gemacht, würde bei mir wohl irgendwie so aussehen.</p>
<pre><code>bool EnvironmentSettings::WriteConfig( const string&amp; file )
{
  ifstream config_file( file.c_str() );
  if( !config_file.is_open() )
  {
    cerr &lt;&lt; &quot;Config file not load!&quot;;
    return false;
  }

  typedef vector&lt;std::string&gt; container;
  typedef container::iterator iter;
  container buffer;
  copy( istream_iterator&lt;string&gt;(config_file), istream_iterator&lt;string&gt;(), back_inserter(buffer));

  string str_env_begin = &quot;#exenv&quot;;
  string str_env_end = &quot;#endexenv&quot;;

  iter start_pos = find(buffer.begin(), buffer.end(), str_env_begin);
  iter end_pos   = find(buffer.begin(), buffer.end(), str_env_end);

  if(start_pos != buffer.end())
  {
    	buffer.erase(start_pos, (end_pos+1));
  }

  //writing new config
  ofstream new_config_file( &quot;/etc/envtmp&quot; );
  if( !new_config_file.is_open() )
  {
    cerr &lt;&lt; &quot;New config file not load!&quot;;
    return false;
  }

  for( const auto&amp; s : buffer )
  {
    new_config_file &lt;&lt; s;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376438</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 10 Jan 2014 13:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 14:07:00 GMT]]></title><description><![CDATA[<p>Danke out für die Anregungen. Hab einiges umgesetzt. Beschäftige mich nun mit dem erase noch einmal.<br />
Hat sonst noch jemand was? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376446</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Fri, 10 Jan 2014 14:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Fri, 10 Jan 2014 21:57:10 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Danke out für die Anregungen. Hab einiges umgesetzt. Beschäftige mich nun mit dem erase noch einmal.<br />
Hat sonst noch jemand was? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Beim Kopieren der Daten in Zeile 31 solltest Du hinter jedem Wort noch ein Leerzeichen oder Linefeed einfügen, sonst wird Wort an Wort hinter einander in die Datei geschrieben.<br />
Weiter halte ich es für sinnvoll, dass man den <code>std::vector&lt;std::string&gt; buffer</code> einspart und die gelesenen Wörter gleich in die Zieldatei schreibt - weniger Code weniger Speicher und wahrscheinlich performanter. Und drittens würde ich für die Klasse/struct <code>EnvData</code> einen Ausgabeoperator schreiben, dann wird der Code noch etwas einfacher - etwa so:</p>
<pre><code>bool EnvironmentSettings::WriteConfig( const char *file )
{
    using namespace std;
    {
        ifstream config_file( file );
        if( !config_file.is_open() )
        {
            cerr &lt;&lt; &quot;Config file not load!&quot;;
            return false;
        }
        ofstream new_config_file( &quot;/etc/envtmp&quot; );
        if( !new_config_file.is_open() )
        {
            cerr &lt;&lt; &quot;New config file not load!&quot;;
            return false;
        }

        const string str_env_begin = &quot;#exenv&quot;;
        const string str_env_end = &quot;#endexenv&quot;;
        bool copy_ = true;
        for( string word; config_file &gt;&gt; word; )
        {
            if( copy_ )
            {
                if( word == str_env_begin )
                    copy_ = false;
                else
                    new_config_file &lt;&lt; word &lt;&lt; &quot;\n&quot;;
            }
            else if( word == str_env_end )
                copy_ = true;
        }

        new_config_file &lt;&lt; str_env_begin &lt;&lt; &quot;\n&quot;;
        for(EnvData *curenv = FirstEnvData; curenv; curenv = curenv-&gt;Next){
            new_config_file &lt;&lt; *curenv &lt;&lt; &quot;\n&quot;;
        }
        new_config_file &lt;&lt; str_env_end &lt;&lt; std::endl;
    } // hier sind die Dateien wieder zu

    //delete old config file and rename the tmp file
    std::remove(file);
    int result = rename(&quot;/etc/envtmp&quot;, file);
    if(result != 0){
        cerr &lt;&lt; &quot;Error renaming file&quot; &lt;&lt; endl;
        return false;
    }
    return true;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376576</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 10 Jan 2014 21:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Mon, 13 Jan 2014 07:39:01 GMT]]></title><description><![CDATA[<p>Wow vielen dank Werner!<br />
Das sieht super aus. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich schau mal ob ich das mit dem Ausgabeoperator noch hin bekomme.</p>
<p>Ach so und noch eine Frage:<br />
Durch den</p>
<pre><code>using namespace std
</code></pre>
<p>scope werden dann die Dateien geschlossen, wenn dieser sich schließt? Wenn ich den nicht benutzen würde müsste ich vorher</p>
<pre><code>file.close()
</code></pre>
<p>machen richtig? Nur das ich das richtig verstehe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ach was ich grade sehe der Scope gehört gar nicht zu den namespace. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Gibt es einen Namen für das was du dort angewendet hast? Also das ist doch einfach nur ein Scope oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377035</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Mon, 13 Jan 2014 07:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Mon, 13 Jan 2014 08:03:15 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p>Also das ist doch einfach nur ein Scope oder?</p>
</blockquote>
<p>Ja. Einfach, damit die Datei nach Gebrauch schnell genug geclosed wird, vor dem remove.<br />
Da mit den ganzen Exceptions und dem Mitten-Aus-Der-Funktion-Herausreturnrn (Zeile9 und 15) man eh aufs explizite Hinschreiben von close völlig verzichtet und das den Destruktor automatisch machen lässt, ist das mit dem scope statt close halt der konsequente Weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377040</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 13 Jan 2014 08:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Mon, 13 Jan 2014 08:06:16 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Danke für die Erklärung.<br />
Ist das schlecht, wenn man da mit raus returned? Sollte ich das anders lösen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377041</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Mon, 13 Jan 2014 08:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Mon, 13 Jan 2014 08:08:12 GMT]]></title><description><![CDATA[<p>Fuchs aus dem Wald schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Danke für die Erklärung.<br />
Ist das schlecht, wenn man da mit raus returned? Sollte ich das anders lösen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Das WAR mal schlecht, damals als Strukturierte Programmierung die heilige Kuh war, die jeder Lehrer anbetete. Als man noch close() selber hinschreiben musste, als es keine sofort zuschlagenden Destruktoren gab.</p>
<p>Aber jetzt isses gut! Sobald der Returnwert der Funktion feststeht, sofort raus. Das macht alles einfacher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377042</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 13 Jan 2014 08:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Datei auslesen und hineinschreiben on Mon, 13 Jan 2014 08:20:31 GMT]]></title><description><![CDATA[<p>Ok danke für das Hintergrundwissen. Wieder was gelernt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377043</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Mon, 13 Jan 2014 08:20:31 GMT</pubDate></item></channel></rss>