<?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[ios::app]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe kurz eine Frage zu ios::app. Mit diesem Befehl kann ich ja die Ausgabe an die Datei anhängen. Gint es irgendwie die Möglichkeit nicht die ganze Ausgabe immer hinten anzuhängen , sonder nur die letzten 10 oder so?</p>
<p>Ich habe zum Beispiel folgendes:</p>
<pre><code class="language-cpp">for (vector&lt;SCIP_CONS*&gt;::const_iterator iter = periodCon_.begin(); iter != periodCon_.end(); ++iter) {
                double newgamma = SCIPgetDualsolLinear( scip, *iter );
                dualVariables.gamma.push_back(newgamma);

         std::ofstream File2(&quot;Gamma.txt&quot;, ios::app);

                              File2 &lt;&lt; newgamma &lt;&lt; endl;

                              File2.close();

}
</code></pre>
<p>Ich möchte das die Datei am Ende nur die letzten 10 Werte enthält. Ist das irgendwie möglich?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305014/ios-app</link><generator>RSS for Node</generator><lastBuildDate>Thu, 25 Jun 2026 14:23:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305014.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jun 2012 09:29:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 09:29:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe kurz eine Frage zu ios::app. Mit diesem Befehl kann ich ja die Ausgabe an die Datei anhängen. Gint es irgendwie die Möglichkeit nicht die ganze Ausgabe immer hinten anzuhängen , sonder nur die letzten 10 oder so?</p>
<p>Ich habe zum Beispiel folgendes:</p>
<pre><code class="language-cpp">for (vector&lt;SCIP_CONS*&gt;::const_iterator iter = periodCon_.begin(); iter != periodCon_.end(); ++iter) {
                double newgamma = SCIPgetDualsolLinear( scip, *iter );
                dualVariables.gamma.push_back(newgamma);

         std::ofstream File2(&quot;Gamma.txt&quot;, ios::app);

                              File2 &lt;&lt; newgamma &lt;&lt; endl;

                              File2.close();

}
</code></pre>
<p>Ich möchte das die Datei am Ende nur die letzten 10 Werte enthält. Ist das irgendwie möglich?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224917</guid><dc:creator><![CDATA[Tugba]]></dc:creator><pubDate>Tue, 19 Jun 2012 09:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 09:37:05 GMT]]></title><description><![CDATA[<p>Tugba schrieb:</p>
<blockquote>
<p>ich habe kurz eine Frage zu ios::app. Mit diesem Befehl [...]</p>
</blockquote>
<p>ios::app ist kein Befehl, sondern einfach ein Flag, das dem fstream beim Öffnen mitgegeben wird.</p>
<blockquote>
<p>kann ich ja die Ausgabe an die Datei anhängen. Gint es irgendwie die Möglichkeit nicht die ganze Ausgabe immer hinten anzuhängen , sonder nur die letzten 10 oder so?</p>
</blockquote>
<p>Jein. fstream bietet dazu keine Funktionalität an. Allerdings ist das auch garnicht nötig. Du darfst eben nicht <em>alles</em> aus dem vector in die Datei stopfen, sondern nur die letzen 10 Elemente.</p>
<p>vector::size liefert dir die Anzahl der Elemente, außerdem kann man durch Addition und Subtraktion der Iteratoren mit Ganzzahlen neue Iteratoren erhalten, z.B. einen, der auf das zehntletzte Element zeigt. Das sollte als Anregung reichen, um dich auf die richtige Spur zu bringen <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="😉"
    /><br />
PS: Achte auf Spezialfälle, z.B. wenn der vector weniger als 10 Elemente enthält.<br />
PPS: Öffne die Datei <em>vor</em> der Schleife. Sie immer zu öffnen und zu schließen ist unnötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224921</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Jun 2012 09:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 09:52:31 GMT]]></title><description><![CDATA[<p>Ich würde auch davon absehen, die Datei für jeden Schleifendurchlauf neu zu öffnen und zu schließen und std::endl durch '\n' ersetzen (Flushen ist nicht nach jedem Wert notwendig und geht auf die Performance).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224928</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 19 Jun 2012 09:52:31 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 10:02:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für eure Hilfe, aber da ich noch überhaupt keine Ahnung von C++ habe und diesen Code bekommen habe, weiß ich garnicht wie ich ansätzen soll.</p>
<p>Mit vector:size bekomme ich wie groß mein vector ist. Wie kriege ich denn die Iteratoren dazu an der zehnt letzten position im vector anzufangen und dann diese Werte in die datei zu schreiben??</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224930</guid><dc:creator><![CDATA[Tugba]]></dc:creator><pubDate>Tue, 19 Jun 2012 10:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 10:11:12 GMT]]></title><description><![CDATA[<p>Tugba schrieb:</p>
<blockquote>
<p>Wie kriege ich denn die Iteratoren dazu an der zehnt letzten position im vector anzufangen und dann diese Werte in die datei zu schreiben??</p>
</blockquote>
<ol>
<li>it = begin() liefert dir, wie du vermutlich weißt, einen Iterator auf das erste Element.</li>
<li>it += N verschiebt den Iterator um N Elemente.</li>
<li>Als Abkürzung ginge auf it = begin() + N</li>
</ol>
<p>Quizfrage: wie viele Elemente musst du einen Iterator auf das erste Element verschieben, um einen Iterator auf das zehntletzte Element zu erhalten?</p>
<p>Tugba schrieb:</p>
<blockquote>
<p>aber da ich noch überhaupt keine Ahnung von C++ habe und diesen Code bekommen habe, weiß ich garnicht wie ich ansätzen soll.</p>
</blockquote>
<p>Ganz ohne Ahnung wäre der beste Ansatz ein gutes C++-Einsteigerbuch. Da steht dann auch all sowas drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224933</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Jun 2012 10:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 11:17:44 GMT]]></title><description><![CDATA[<p>Es geht doch ganz einfach:</p>
<pre><code class="language-cpp">std::copy(v.begin(), 
          (v.size() &gt;= AnzahlElemente)? vector.begin() + AnzahlElemente : vector.end(), //Wenn der vector nicht genug Elemente hält, nur bis zum Ende (du kannst auch was werfen)
          std::ostream_iterator&lt;SCIP_CONS*&gt;(deinStream, &quot;\n&quot;));
</code></pre>
<p>Ungetestet. <code>SCIP_CONS*</code> nehme ich an, ist der zu haltende Typ deines <code>std::vector</code> , <code>v</code> der Name deines <code>std::vector</code> und <code>deinStream</code> der Name deines Filestreams. Und der Delimitter (das Trennzeichen) ist ein Zeilenumbruch (wie gewünscht).</p>
<p>Beachte aber, dass wenn du Zeiger in eine Datei schreibst, dir (!) diese später nichts bringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224951</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 19 Jun 2012 11:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 11:18:10 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Es geht doch ganz einfach:</p>
</blockquote>
<p>Ist es, aber in dem Fall hast du es dir ZU leicht gemacht, er kopiert nicht die Vectorelemente selber, sondern rechnet sich daraus einen Wert aus. Sieht man ja an seinem Code oben. Aber eigentlich sollte er jetzt auch selber dahinter kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2224954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2224954</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Jun 2012 11:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to ios::app on Tue, 19 Jun 2012 13:46:19 GMT]]></title><description><![CDATA[<p>Dann könnte man transform + Lambdas statt copy nehmen. <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="😉"
    /> Aber ich glaube ohnehin nicht das das es zielführend ist, solche für einen Anfänger völlig unverständliche Codeschnipsel zu posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2225012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2225012</guid><dc:creator><![CDATA[Oberon_0]]></dc:creator><pubDate>Tue, 19 Jun 2012 13:46:19 GMT</pubDate></item></channel></rss>