<?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[Maschienencode konvertierung]]></title><description><![CDATA[<p>Hallo folgendes ich schreibe \x90 in eine Datei in Maschienensprache steht das ja für ein NOP ( No operation ) Befehl.</p>
<p>Nun will ich die Datei wieder auslesen und es soll 90 rauskommen nur hab ich keine Ahnung wie ich das Umrechnen soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{
string var;
char save[200] ;

int j;

        ofstream file ( &quot;exit.bin&quot; );
        file &lt;&lt; &quot;\x90&quot;;
        file.close();

        ifstream f2 ( &quot;exit.bin&quot; );
        f2 &gt;&gt;save;
        f2.close();

        cout&lt;&lt;save;  // Ausgabe sieht so aus:  É

system(&quot;PAUSE&quot;);
        return 0;
}
//---------------------------------------------------------------------------
</code></pre>
<p>Hier ist ein Ansatz versuch von mir:</p>
<p>Ich dachte vielleicht das dass Zeichen: É an der Stelle 90 steht war aber nicht so. -.-</p>
<pre><code class="language-cpp">char z = '\x00';

for (int i=0;i&lt;256;i++)
{
  z+=1;
  cout&lt;&lt; i &lt;&lt; &quot;:&quot; &lt;&lt; z &lt;&lt;endl;
}
</code></pre>
<p>Weiss wer wie man das berechnen kann oder so ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280301/maschienencode-konvertierung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 04:04:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280301.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jan 2011 11:28:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 11:28:34 GMT]]></title><description><![CDATA[<p>Hallo folgendes ich schreibe \x90 in eine Datei in Maschienensprache steht das ja für ein NOP ( No operation ) Befehl.</p>
<p>Nun will ich die Datei wieder auslesen und es soll 90 rauskommen nur hab ich keine Ahnung wie ich das Umrechnen soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{
string var;
char save[200] ;

int j;

        ofstream file ( &quot;exit.bin&quot; );
        file &lt;&lt; &quot;\x90&quot;;
        file.close();

        ifstream f2 ( &quot;exit.bin&quot; );
        f2 &gt;&gt;save;
        f2.close();

        cout&lt;&lt;save;  // Ausgabe sieht so aus:  É

system(&quot;PAUSE&quot;);
        return 0;
}
//---------------------------------------------------------------------------
</code></pre>
<p>Hier ist ein Ansatz versuch von mir:</p>
<p>Ich dachte vielleicht das dass Zeichen: É an der Stelle 90 steht war aber nicht so. -.-</p>
<pre><code class="language-cpp">char z = '\x00';

for (int i=0;i&lt;256;i++)
{
  z+=1;
  cout&lt;&lt; i &lt;&lt; &quot;:&quot; &lt;&lt; z &lt;&lt;endl;
}
</code></pre>
<p>Weiss wer wie man das berechnen kann oder so ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006014</guid><dc:creator><![CDATA[shell*]]></dc:creator><pubDate>Thu, 13 Jan 2011 11:28:34 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 11:31:08 GMT]]></title><description><![CDATA[<p>static_cast&lt;int&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006018</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 11:31:08 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 11:46:47 GMT]]></title><description><![CDATA[<p>Funktioniert nicht es wird nur der Wert -112 bei cout&lt;&lt;static_cast&lt;int&gt;(var);<br />
ausgeben.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main(int argc, char* argv[])
{

char save[200] ;
char var;

int j;

        ofstream file ( &quot;exit.bin&quot; );
        file &lt;&lt; &quot;\x90&quot;;
        file.close();

        ifstream f2 ( &quot;exit.bin&quot; );
        f2 &gt;&gt;save;
        f2.close();

        var=save[0];

        cout&lt;&lt;var&lt;&lt;endl;
        cout&lt;&lt;static_cast&lt;int&gt;(var);

system(&quot;PAUSE&quot;);
        return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2006023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006023</guid><dc:creator><![CDATA[shell*]]></dc:creator><pubDate>Thu, 13 Jan 2011 11:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 11:50:56 GMT]]></title><description><![CDATA[<p>So gehts jetzt</p>
<p>Aber der schreibt vor der 90 erst noch ffff ich glaub ich mach das mit C das geht leichter. ^^</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;fstream&gt; 
using namespace std; 

int main(int argc, char* argv[]) 
{ 

char save[200] ; 
char var; 

int j; 

        ofstream file ( &quot;exit.bin&quot; ); 
        file &lt;&lt; &quot;\x90&quot;; 
        file.close(); 

        ifstream f2 ( &quot;exit.bin&quot; ); 
        f2 &gt;&gt;save; 
        f2.close(); 

        var=save[0]; 

        cout&lt;&lt;var&lt;&lt;endl; 
        cout&lt;&lt; hex &lt;&lt; static_cast&lt;int&gt;(var); 

system(&quot;PAUSE&quot;); 
        return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2006025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006025</guid><dc:creator><![CDATA[shell*]]></dc:creator><pubDate>Thu, 13 Jan 2011 11:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 11:55:03 GMT]]></title><description><![CDATA[<p>Weil du mit C++ nicht umgehen kannst, geht es mit C also leichter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006026</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 11:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 12:15:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iomanip&gt;

int main(int argc, char** argv)
{
	std::ofstream os(&quot;exit.bin&quot;);
	os &lt;&lt; '\x90' &lt;&lt; std::flush;

	std::ifstream is(&quot;exit.bin&quot;);
	unsigned char tmp;
	is &gt;&gt; tmp;

	std::cout &lt;&lt; std::hex &lt;&lt; static_cast&lt;unsigned&gt;(tmp) &lt;&lt; std::endl;
}
</code></pre>
<p>Filestreams müssen nicht geschlossen werden, die schließen sich im Destruktor selbst. Außerdem musst du unsigned char verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006027</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 12:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 12:32:04 GMT]]></title><description><![CDATA[<p>Habs jetzt mit C++ hinbekommen ^^</p>
<p>Aber wann benutz mann denn .close(); ?</p>
<p>Benutzen die das hier nur weil man die Datei mit .open öffnet ?</p>
<p><a href="http://www.cplusplus.com/reference/iostream/ifstream/close/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ifstream/close/</a></p>
<p>Ich kannte das bisher immer nur so das man bei ifstream und ofstream die Streams mit .close(); schließen muss.</p>
<p>Ansonsten Debugge ich es nachher mal dann sehe ich es ja wie es wirklich funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006046</guid><dc:creator><![CDATA[shell*]]></dc:creator><pubDate>Thu, 13 Jan 2011 12:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 12:34:01 GMT]]></title><description><![CDATA[<p>Die benutzt man in der Regel gar nicht. Im Konstruktor öffnen, im Destruktor schließen, nennt sich RAII.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006047</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 12:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 13:16:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a></p>
<p>Hast du dein Beispiel mal getestet? Ich kann mir gut vorstellen, dass das eher ein Fall ist, wo man close() anwenden <strong>muss</strong>. Du öffnest eine Datei zum Schreiben und willst sie ein zweites Mal zum Lesen öffnen, <strong>bevor</strong> sie durch den Destruktor geschlossen wurde. Es ist immer sinnvoll, wenn man die Objektlebensdauer nicht einschätzen kann oder sie länger ist, Ressourcen nur solange zu halten, wie man sie benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006067</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 13:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 13:18:32 GMT]]></title><description><![CDATA[<p>Ergänzung:<br />
Der Destruktor ist (auch) als Absicherung gedacht, damit die Ressourcen auch wirklich wieder frei gegeben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006068</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 13:18:32 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 13:55:33 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>Hast du dein Beispiel mal getestet? Ich kann mir gut vorstellen, dass das eher ein Fall ist, wo man close() anwenden <strong>muss</strong>. Du öffnest eine Datei zum Schreiben und willst sie ein zweites Mal zum Lesen öffnen, <strong>bevor</strong> sie durch den Destruktor geschlossen wurde. Es ist immer sinnvoll, wenn man die Objektlebensdauer nicht einschätzen kann oder sie länger ist, Ressourcen nur solange zu halten, wie man sie benötigt.</p>
</blockquote>
<p>Du hast RAII nicht verstanden. Solche Fälle sollte man gar nicht erst aufkommen lassen. Ich sehe auch kein Szenario wo man dazu gezwungen wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006090</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Jan 2011 13:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:18:19 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast RAII nicht verstanden.</p>
</blockquote>
<p>Geht das schon wieder los?</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Solche Fälle sollte man gar nicht erst aufkommen lassen.</p>
</blockquote>
<p>Dann beschwer dich bei 314159265358979 und sag ihm, dass sein Design scheiße ist. Ich würds in dem konkreten Fall ganz genauso machen, weil <a href="http://en.wikipedia.org/wiki/KISS_principle" rel="nofollow">http://en.wikipedia.org/wiki/KISS_principle</a>.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich sehe auch kein Szenario wo man dazu gezwungen wäre.</p>
</blockquote>
<p>Die Verwendung von Ressourcen muss nicht zwangsläufig mit der Lebensdauer einer Funktion einher gehen. Dazu kannst du dir noch mal das Beispiel von 314159265358979 ansehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006097</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:23:05 GMT]]></title><description><![CDATA[<p>Natürlich könnte man statt des Flushens die File explizit closen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006102</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:35:11 GMT]]></title><description><![CDATA[<p>Dann ist aber immer noch das File-Handle offen. Und es gibt Möglichkeiten Dateien so zu öffnen, dass sie kein weiteres Mal geöffnet werden können. Wenn wir aber von Ressourcen sprechen, dann meinen wir nicht nur Dateien. Zum Beispiel bei einem Drucker macht es gar kein Sinn vorher einen neuen Druckauftrag zu versenden, bevor der alte noch nicht abgeschlossen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006107</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:35:11 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:38:14 GMT]]></title><description><![CDATA[<p>Dein Beispiel ist falsch. Wenn ich mehrere Seiten drucken will, lege ich die Aufträge in eine Auftrags-queue.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006109</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:45:00 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Du hast RAII nicht verstanden.</p>
</blockquote>
<p>Geht das schon wieder los?</p>
</blockquote>
<p>Bis du es endlich verstehst <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="😉"
    /> . Das ist kein Gefrickel das mal in seltenen Ausnahmefällen funktioniert. Das ist eine grundlegende Technik, die eigentlich immer für alles funktioniert (du magst exotische Ausnahmefälle konstruieren können, aber FileHandles, Drucker und vor allem Arbeitsspeicher gehören nicht dazu!).</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Solche Fälle sollte man gar nicht erst aufkommen lassen.</p>
</blockquote>
<p>Dann beschwer dich bei 314159265358979 und sag ihm, dass sein Design scheiße ist.</p>
</blockquote>
<p>Ist es auch, denn seine Variablen sind nicht so lokal wie sie sein sollten:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iomanip&gt;

int main(int argc, char** argv)
{
  {  
    std::ofstream os(&quot;exit.bin&quot;);
    os &lt;&lt; '\x90' &lt;&lt; std::flush;
  } // os wird hiernach nie wieder gebraucht, also lokal machen.
  {
    std::ifstream is(&quot;exit.bin&quot;);
    unsigned char tmp;
    is &gt;&gt; tmp;
    std::cout &lt;&lt; std::hex &lt;&lt; static_cast&lt;unsigned&gt;(tmp) &lt;&lt; std::endl;
  } // is und tmp werden hiernach nie wieder gebraucht, also lokal machen
}
</code></pre>
<p>Zack, alle Probleme gelöst indem 4 Zeichen eingefügt wurden. Gleichzeitig gezeigt, dass man über die Programmstruktur nachgedacht hat. Und vor allem kann jetzt nirgends mehr irgendwas schiefgehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006114</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:47:01 GMT]]></title><description><![CDATA[<p>Ist das euer ernst mit den Klammern oder ein schlechter Scherz? <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/2006115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006115</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:47:24 GMT]]></title><description><![CDATA[<p>Nein dein Ansatz ist falsch. Die Auftrags-Queue ist nicht der Drucker, die Auftrags-Queue bedient nur den Drucker. Damit hält sie das Problem von dir fern, indem sie dir die Arbeit abnimmt. Aber nur weil du das Problem nicht mehr siehst, heißt das nicht, dass es nicht prinzipiell da ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006117</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:52:00 GMT]]></title><description><![CDATA[<p>Über den Ansatz mit den Klammern hab ich auch schon nachgedacht. Hab ihn aber wieder verworfen, weil man ja auch noch Variablen gebrauchen könnte, die auf diesem Weg durch ihre Initialisierung in einen anderen Block rutschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006121</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 14:57:50 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>Über den Ansatz mit den Klammern hab ich auch schon nachgedacht. Hab ihn aber wieder verworfen, weil man ja auch noch Variablen gebrauchen könnte, die auf diesem Weg durch ihre Initialisierung in einen anderen Block rutschen.</p>
</blockquote>
<p>Was meinst du mit Variablen, die durch ihre Initialisierung in einen anderen Block rutschen?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a> :<br />
Natürlich ist der Ansatz ernst gemeint - scopes eingefügt, Objekte werden zerstört wenn sie nicht mehr gebraucht werden und dabei Resourcen freigegeben -&gt; RAII umgesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006125</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Thu, 13 Jan 2011 14:57:50 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 15:07:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">{
    std::ifstream is(&quot;exit.bin&quot;);
    unsigned char tmp;
    is &gt;&gt; tmp;
    std::cout &lt;&lt; std::hex &lt;&lt; static_cast&lt;unsigned&gt;(tmp) &lt;&lt; std::endl;
  } // is und tmp werden hiernach nie wieder gebraucht, also lokal machen
</code></pre>
<p>Was ist, wenn ich tmp später doch noch brauche? Dann bleibt mir ja gar nichts anderes übrig, als tmp außerhalb des Scopes zu deklarieren. Und damit hätte ich ja kein RAII mehr. Auch wenn RAII in Verbindung mit tmp in jedem Fall verletzt wird, so beschränkt sich die Variante von SeppJ zumindest auf eine minimal mögliche Verletzung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006133</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 15:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 15:34:35 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>Was ist, wenn ich tmp später doch noch brauche? Dann bleibt mir ja gar nichts anderes übrig, als tmp außerhalb des Scopes zu deklarieren.</p>
</blockquote>
<p>Genau.</p>
<blockquote>
<p>Und damit hätte ich ja kein RAII mehr.</p>
</blockquote>
<p>Wieso nicht?</p>
<p>Faustregel: RAII funktioniert und hilft <strong>immer</strong>. Gegenbeispiele musst du schon sehr gezielt konstruieren. Hier sehe ich nicht, was du für ein Problem haben könntest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006145</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Jan 2011 15:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 15:35:08 GMT]]></title><description><![CDATA[<p>Ich seh den Zusammenhang nicht ganz. Inwiefern würde eine Definition (nicht Deklaration) von tmp im übergeordneten scope (also der main-Funktion) das RAII-Idiom verletzen?</p>
<p>Die STL macht gebrauch von der RAII-Technik - beim file-stream-template wird eben im Destruktor close() aufgerufen. Dann macht es allerdings wenig Sinn, wenn ich die Lebensdauer eines filestream-Objekts unnötig verlänger - im schlimmsten Fall leg ich es global an.<br />
Also versucht man Objekte möglichst lokal zu halten und genau das geschieht hier doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006146</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Thu, 13 Jan 2011 15:35:08 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 16:38:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct Foo
{
    Foo()
    Foo(std::istream &amp;);
    std::istream &amp; operator &gt;&gt; (std::istream &amp;);
};

int main()
{
    Foo foo;              // Initialisierung
    {
        std::cin &gt;&gt; foo;  // Zuweisung
    }

    Foo bar(std::cin);    // Initialisierung
}
</code></pre>
<p>Oder wo ist mein Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006175</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 16:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 16:41:30 GMT]]></title><description><![CDATA[<p>std::cin ist ein Objekt, kein Typ.</p>
<pre><code class="language-cpp">{
        std::cin &gt;&gt; foo;  // Zuweisung
    }
</code></pre>
<p>Hier wird also kein Konstruktor oder Destruktor aufgerufen, folglich findet kein RAII statt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006176</guid><dc:creator><![CDATA[Denkfehler]]></dc:creator><pubDate>Thu, 13 Jan 2011 16:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to Maschienencode konvertierung on Thu, 13 Jan 2011 17:12:43 GMT]]></title><description><![CDATA[<p><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="😕"
    /> Genau das steht doch dort?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006192</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Thu, 13 Jan 2011 17:12:43 GMT</pubDate></item></channel></rss>