<?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[Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren?]]></title><description><![CDATA[<p>Hallo an Alle,</p>
<p>ich bin mom Schüler an einem Tech-Gym. und liebe die PC -Welt. Leider bin ich mit C++ noch nicht so fit und habe erst angefangen damit (4 Monate).</p>
<p>Es geht um folgendes.</p>
<p>- Ich habe eine Datei text.txt in der volgendes steht:</p>
<p><strong>35.121</strong>: [Full GC (System) [PSYoungGen: <strong>51172</strong>K-&gt;0K(<strong>764608</strong>K)] [PSOldGen: 0K-&gt;<strong>50789</strong>K(<strong>1747648</strong>K)] <strong>51172</strong>K-&gt;<strong>50789</strong>K(<strong>2512256</strong>K) [PSPermGen: <strong>73515</strong>K-&gt;<strong>73515</strong>K(<strong>147072</strong>K)], 0.3471350 secs] [Times: user=0.33 sys=0.02, real=0.35 secs]</p>
<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="😕"
    /> <strong>Wie kann ich nun genau die fetten Zeichen aus der Datei extrahieren und in eine Neue txt mit leerzeichen(Trennzeichen) schreiben??</strong> <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="😕"
    /></p>
<p><strong>35.121 51172 764608 50789 1747648 51172 50789 2512256 73515 73515 147072</strong></p>
<p>- Problem es sind ca. 10 Zeilen mit dem gleichen Aufbau, aber mit unterschiedlichen Zahlenwerten, so dass ich nicht konkret suchen kann<br />
- Das Problem beim Finden eines Algorythmus ist, dass ich auch den Punkt bei er ersten Zahl benötige.<br />
- Habe schon mit isdigit und cases probiert ran zu kommen, aber es gestaltet sich soooo schwierig, da ich ja nicht nur Zahlen haben will und auch nicht alle Zahlen(habe versucht ab dem Komma zu löschen) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ..ich bräuchte etwas flexibles. <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="😕"
    /></p>
<p>Folgendes habe ich schon zusammenbekommen um den Inhalt der Datei in eine neue zu schreiben, was auch die Basis für die implementierung eines Algorythmus gewesen ist.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

void copyLine4Line( ifstream&amp; istream, ofstream&amp; ostream);

int main(int arg, char **argv)											// Max. Anzahl von Zeichen die in Puffer passen, Zeiger auf ein char-Array
{
// -----Datei zum Lesen öffnen--------------------------------------------

	ifstream f1 (&quot;test.txt&quot;);											// Legt File-Stream zum lesen und Dateipuffer an, ohne Datei zu öffnen
	ofstream f2 (&quot;backtest.txt&quot;);										// Legt File-Stream zum schreiben und Dateipuffer an, ohne Datei zu öffnen

    if (f1.is_open() != true){											// Test
		cerr &lt;&lt; &quot;Konnte test.txt nicht oeffnen&quot; &lt;&lt; endl;				// 
	}																	//	

	if(f2.is_open() != true){											// Test
		cerr &lt;&lt; &quot;Konnte backtest.txt nicht oeffnen&quot; &lt;&lt; endl;			//
	}																	//

	// -Zeilenweise kopieren---------------------------------------------
	copyLine4Line (f1, f2);												// Aufruf
	f1.close();															// Schließen
	f2.close();															//	   &quot;

	return 0;															//
}																		//

// -----Zeilenweise kopieren in neue Datei--------------------------------
void copyLine4Line( ifstream&amp; istream, ofstream&amp; ostream){				//
	char buffer[512];													//
	while(istream.getline(buffer, sizeof(buffer)) ){					// Einlesen
		if(istream.fail() ) {											// Test
			cout &lt;&lt; &quot;Unerwarteter Lesefehler&quot; &lt;&lt; endl;					//
			break;														//
		}																//
</code></pre>
<p>Hier habe ich versucht die Zeile zu selektieren z.B.über isdigit, bevor es in der nächsten Zeile in die Datei rausgeschriben wird..aber ging nieeee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">ostream &lt;&lt; buffer &lt;&lt; endl;										// Rausschreiben
		if (ostream.fail() ) {											// Test
			cout &lt;&lt; &quot;Unerwarteter Schreibfehler&quot; &lt;&lt; endl;				//
			break;														//
		}																//
	}																	//
}																		//
//------------------------------------------------------------------------
</code></pre>
<p>Da mir auch mein C++ Schinken <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="😡"
    /> von GallileoComputing nicht weiterhilft und ich so etwas spezielles noch in keinem Forum gefunden habe, hoffe ich dass Ihr mir eventuell weiterhelfen könntet.</p>
<p>Über Antworten würde ich mich sehr freuen!!!!<br />
Schöne Grüße<br />
Fill</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305678/wie-kann-ich-variable-zahlen-aus-einer-zeile-die-in-einem-buffer-ist-extrahieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 10:16:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305678.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jul 2012 09:45:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 09:45:12 GMT]]></title><description><![CDATA[<p>Hallo an Alle,</p>
<p>ich bin mom Schüler an einem Tech-Gym. und liebe die PC -Welt. Leider bin ich mit C++ noch nicht so fit und habe erst angefangen damit (4 Monate).</p>
<p>Es geht um folgendes.</p>
<p>- Ich habe eine Datei text.txt in der volgendes steht:</p>
<p><strong>35.121</strong>: [Full GC (System) [PSYoungGen: <strong>51172</strong>K-&gt;0K(<strong>764608</strong>K)] [PSOldGen: 0K-&gt;<strong>50789</strong>K(<strong>1747648</strong>K)] <strong>51172</strong>K-&gt;<strong>50789</strong>K(<strong>2512256</strong>K) [PSPermGen: <strong>73515</strong>K-&gt;<strong>73515</strong>K(<strong>147072</strong>K)], 0.3471350 secs] [Times: user=0.33 sys=0.02, real=0.35 secs]</p>
<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="😕"
    /> <strong>Wie kann ich nun genau die fetten Zeichen aus der Datei extrahieren und in eine Neue txt mit leerzeichen(Trennzeichen) schreiben??</strong> <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="😕"
    /></p>
<p><strong>35.121 51172 764608 50789 1747648 51172 50789 2512256 73515 73515 147072</strong></p>
<p>- Problem es sind ca. 10 Zeilen mit dem gleichen Aufbau, aber mit unterschiedlichen Zahlenwerten, so dass ich nicht konkret suchen kann<br />
- Das Problem beim Finden eines Algorythmus ist, dass ich auch den Punkt bei er ersten Zahl benötige.<br />
- Habe schon mit isdigit und cases probiert ran zu kommen, aber es gestaltet sich soooo schwierig, da ich ja nicht nur Zahlen haben will und auch nicht alle Zahlen(habe versucht ab dem Komma zu löschen) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ..ich bräuchte etwas flexibles. <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="😕"
    /></p>
<p>Folgendes habe ich schon zusammenbekommen um den Inhalt der Datei in eine neue zu schreiben, was auch die Basis für die implementierung eines Algorythmus gewesen ist.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

void copyLine4Line( ifstream&amp; istream, ofstream&amp; ostream);

int main(int arg, char **argv)											// Max. Anzahl von Zeichen die in Puffer passen, Zeiger auf ein char-Array
{
// -----Datei zum Lesen öffnen--------------------------------------------

	ifstream f1 (&quot;test.txt&quot;);											// Legt File-Stream zum lesen und Dateipuffer an, ohne Datei zu öffnen
	ofstream f2 (&quot;backtest.txt&quot;);										// Legt File-Stream zum schreiben und Dateipuffer an, ohne Datei zu öffnen

    if (f1.is_open() != true){											// Test
		cerr &lt;&lt; &quot;Konnte test.txt nicht oeffnen&quot; &lt;&lt; endl;				// 
	}																	//	

	if(f2.is_open() != true){											// Test
		cerr &lt;&lt; &quot;Konnte backtest.txt nicht oeffnen&quot; &lt;&lt; endl;			//
	}																	//

	// -Zeilenweise kopieren---------------------------------------------
	copyLine4Line (f1, f2);												// Aufruf
	f1.close();															// Schließen
	f2.close();															//	   &quot;

	return 0;															//
}																		//

// -----Zeilenweise kopieren in neue Datei--------------------------------
void copyLine4Line( ifstream&amp; istream, ofstream&amp; ostream){				//
	char buffer[512];													//
	while(istream.getline(buffer, sizeof(buffer)) ){					// Einlesen
		if(istream.fail() ) {											// Test
			cout &lt;&lt; &quot;Unerwarteter Lesefehler&quot; &lt;&lt; endl;					//
			break;														//
		}																//
</code></pre>
<p>Hier habe ich versucht die Zeile zu selektieren z.B.über isdigit, bevor es in der nächsten Zeile in die Datei rausgeschriben wird..aber ging nieeee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">ostream &lt;&lt; buffer &lt;&lt; endl;										// Rausschreiben
		if (ostream.fail() ) {											// Test
			cout &lt;&lt; &quot;Unerwarteter Schreibfehler&quot; &lt;&lt; endl;				//
			break;														//
		}																//
	}																	//
}																		//
//------------------------------------------------------------------------
</code></pre>
<p>Da mir auch mein C++ Schinken <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="😡"
    /> von GallileoComputing nicht weiterhilft und ich so etwas spezielles noch in keinem Forum gefunden habe, hoffe ich dass Ihr mir eventuell weiterhelfen könntet.</p>
<p>Über Antworten würde ich mich sehr freuen!!!!<br />
Schöne Grüße<br />
Fill</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230244</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jul 2012 09:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 09:51:38 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Willkommen im Forum!<br />
Bevor wir deine Daten parsen, bietet es sich an, erstmal einen Datentyp &quot;Eintrag&quot; zu erstellen, in dessen Objekten wir die Zahlen dann ablegen. Dazu ist es notwendig, erstens Datentyp, zweitens Bedeutung der Zahlen zu kennen.</p>
<p>Ist die erste Zahl beispielsweise eine Kommazahl, oder eine Ganzzahl mit Tausenderpunkt?</p>
<p>Grundsätzlich kannst du mit dem operator &gt;&gt; des std::istream und den Funktionen .get() und .putback() arbeiten, aber wenn du uns sagst, was die Zahlen überhaupt sind, können wir dir bestimmt besser helfen.</p>
<p>Grüße,<br />
Der Kellerautomat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230245</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 05 Jul 2012 09:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 10:30:37 GMT]]></title><description><![CDATA[<p>Mit mehr Hintergrundinformationen wäre das natürlich viel leserlicher, da man dann nicht zahl1, zahl2, usw. schreiben würde. Außerdem habe ich natürlich keine Ahnung, worauf es bei dem Format genau ankommt. Ich habe hier angenommen, dass der nicht-fett geschriebene Text im Beispiel immer gleich ist. Um dir eine Idee zu geben, sollte es reichen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;limits&gt;

class Daten
{
  double zahl1;
  unsigned zahl2;
  unsigned zahl3;
  unsigned zahl4;
  unsigned zahl5;
  unsigned zahl6;
  unsigned zahl7;
  unsigned zahl8;
  unsigned zahl9;
  unsigned zahl10;

  friend std::istream&amp; operator&gt;&gt;(std::istream &amp;in, Daten&amp; daten)
  {
    const std::streamsize max = std::numeric_limits&lt;std::streamsize&gt;::max();
    in &gt;&gt; daten.zahl1;
    in.ignore(1);
    in.ignore(max, ':');
    in &gt;&gt; daten.zahl1;
    in.ignore(max,'(');
    in &gt;&gt; daten.zahl2;
    in.ignore(max,'&gt;');
    in &gt;&gt; daten.zahl3;
    in.ignore(max,'(');
    in &gt;&gt; daten.zahl4;
    in.ignore(max,']');
    in &gt;&gt; daten.zahl5;
    in.ignore(max,'&gt;');
    in &gt;&gt; daten.zahl6;
    in.ignore(max,'(');
    in &gt;&gt; daten.zahl7;
    in.ignore(max,':');
    in &gt;&gt; daten.zahl8;
    in.ignore(max,'&gt;');
    in &gt;&gt; daten.zahl9;
    in.ignore(max,'(');
    in &gt;&gt; daten.zahl10;
    in.ignore(max,'\n');  
    return in;
  }

  friend std::ostream&amp; operator&lt;&lt;(std::ostream &amp;out, const Daten&amp; daten)
  {
    return out &lt;&lt; daten.zahl1 &lt;&lt; ' '
               &lt;&lt; daten.zahl2 &lt;&lt; ' '
               &lt;&lt; daten.zahl3 &lt;&lt; ' '
               &lt;&lt; daten.zahl4 &lt;&lt; ' '
               &lt;&lt; daten.zahl5 &lt;&lt; ' '
               &lt;&lt; daten.zahl6 &lt;&lt; ' '
               &lt;&lt; daten.zahl7 &lt;&lt; ' '
               &lt;&lt; daten.zahl8 &lt;&lt; ' '
               &lt;&lt; daten.zahl9 &lt;&lt; ' '
               &lt;&lt; daten.zahl10;
  }
};

#include &lt;sstream&gt;
int main()
{
  std::stringstream beispiel(&quot;35.121: [Full GC (System) [PSYoungGen: 51172K-&gt; \
0K(764608K)] [PSOldGen: 0K-&gt;50789K(1747648K)] 51172K-&gt;50789K(2512256K) [PSPerm\
Gen: 73515K-&gt;73515K(147072K)], 0.3471350 secs] [Times: user=0.33 sys=0.02, rea\
l=0.35 secs]\n35.121: [Full GC (System) [PSYoungGen: 51172K-&gt;0K(764608K)] [PSO\
ldGen: 0K-&gt;50789K(1747648K)] 51172K-&gt;50789K(2512256K) [PSPermGen: 73515K-&gt;7351\
5K(147072K)], 0.3471350 secs] [Times: user=0.33 sys=0.02, real=0.35 secs]\n35.\
121: [Full GC (System) [PSYoungGen: 51172K-&gt;0K(764608K)] [PSOldGen: 0K-&gt;50789K\
(1747648K)] 51172K-&gt;50789K(2512256K) [PSPermGen: 73515K-&gt;73515K(147072K)], 0.3\
471350 secs] [Times: user=0.33 sys=0.02, real=0.35 secs]\n&quot;);

  for(Daten daten; beispiel &gt;&gt; daten; std::cout &lt;&lt; daten &lt;&lt; '\n');
}
</code></pre>
<p>C++ klingt aber eigentlich eher nach einer ungünstigen Wahl für diese Aufgabe, wenn du die Daten einfach nur wieder in eine Datei schreiben möchtest, statt sie in einem C++-Programm weiter zu verarbeiten. Eine Scriptsprache mit RegEx wäre eigentlich eine viel bessere Wahl. Du siehst an meinem Beispiel, dass das in C++ recht frickelig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230255</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 05 Jul 2012 10:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 10:38:14 GMT]]></title><description><![CDATA[<p>Hallo erstam und herzlichen Dank für die Antwort.</p>
<p>Sorry das ich diese Zusatzinformationen vergessen habe anzugeben.<br />
Also:</p>
<p>- Es handelt sich bei dieser Zeile um eine Speicherauslastung und Bereinigung meines Servers die in eine Datei geschrieben wird</p>
<p>- Der erste Zahlenwert ist der Zeitstempel, ich gehe davon aus alles vor dem Punkt sind Sekunden, hinter dem Punkt Millisec.</p>
<p>- Die anderen Zahlen räpresentieren die Speicher(Haupt-Sp./Statischer-Sp.)jeweils &quot;Wieviel gerade belegt ist&quot; dann &quot;die Bereinigungsmenge&quot; und &quot;der Max-Speicher&quot;</p>
<p>Ich hoffe das Hilft ein wenig um die Zeile nachvolziehen zu können.</p>
<p>ICh versuche der weil mal einen Datentyp &quot;Eintrag&quot; zu erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230262</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jul 2012 10:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 10:55:05 GMT]]></title><description><![CDATA[<p>Hallo Fill,</p>
<p>wie Kellerautomat schon sagte, wäre Schritt 1, eine Struktur <code>Eintrag</code> (oder so) zu bauen, die sozusagen der Datensatz ist, der den Inhalt einer Zeile beschreibt. Für diese <code>struct Eintrag</code> baue man sich die sogenannten Streaming-Operatoren und dort findet dann das eigentliche Lesen und Schreiben genau eines Eintrags statt.<br />
In Deinem Fall ist es sicher angebracht, sich auf markante Zeichen in dem Text zu konzentrieren, die möglichst nur vor der jeweils nächsten Zahl auftauchen. Solche Stellen kann man mit der Methode <a href="http://www.cplusplus.com/reference/iostream/istream/ignore/" rel="nofollow">ignore</a> gezielt 'anspringen'.<br />
Also bei &quot;35.121**:** [Full GC (System) [PSYoungGen**:** 51172K-&gt;0K**(**764608K)] ... &quot; ist das der ':' und die '('. Bei der zweiten Zahl (hier 51172K) muss man schon aufpassen, da der ':' bis dahin zweimal auftaucht.</p>
<p>Ich habe das ganze hier mal skizziert:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt; // copy
#include &lt;fstream&gt;
#include &lt;iterator&gt; // i(o)stream_iterator
#include &lt;iostream&gt;
#include &lt;limits&gt; // numeric_limits

struct Eintrag
{
    static int const N = 10;
    double prefix_;
    int ps_[N];
};
// --   Streaming-Operator für das Lesen
// 1 &quot;35.121: [Full GC (System) 
// 2      [PSYoungGen: 51172K-&gt;0K(764608K)] 
// 3      [PSOldGen: 0K-&gt;50789K(1747648K)] 
// 4          51172K-&gt;50789K(2512256K) 
// 5      [PSPermGen: 73515K-&gt;73515K(147072K)],
//      .. Rest bis EOL&quot;
std::istream&amp; operator&gt;&gt;( std::istream&amp; in, Eintrag&amp; e )
{
    const std::streamsize ALL = std::numeric_limits&lt; std::streamsize &gt;::max();
    in &gt;&gt; e.prefix_;
    in.ignore( ALL, ':' ); // ersten ':' hinter 'prefix' überspringen
    const char* tags = &quot;:(&gt;(]&gt;(:&gt;(&quot;;
    const char* tag = tags;
    for( int i=0; i&lt;Eintrag::N; ++i, ++tag )
        in.ignore( ALL, *tag ) &gt;&gt; e.ps_[i];
    return in.ignore( ALL, '\n' ); // Rest der Zeile überlesen
}
// --   Streaming-Operator für das Schreiben
std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, const Eintrag&amp; e )
{
    out &lt;&lt; e.prefix_ &lt;&lt; &quot; &quot;;
    std::copy( e.ps_, e.ps_ + Eintrag::N, std::ostream_iterator&lt; int &gt;( out, &quot; &quot; ) );
    return out;
}

int main()
{
    using namespace std;
    ifstream f1(&quot;test.txt&quot;);
    ofstream f2(&quot;backtest.txt&quot;);
    if( !f1.is_open() || !f2.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen einer der Dateien&quot; &lt;&lt; endl;
        return -2;
    }
    copy( istream_iterator&lt; Eintrag &gt;(f1), istream_iterator&lt; Eintrag &gt;(), ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
<p>Ups: SeppJ war schneller, aber ich habe alle Zahlen <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 />
@Edit: Schleife beim Lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230263</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 05 Jul 2012 10:55:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 10:46:26 GMT]]></title><description><![CDATA[<p>Na ja aus den Zahlen wollte ich dann nachher eventuell ein kleines Diagramm zeichnen lassen. <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>Aber so weite Schritte kann ich nicht überblicken, daher wollte ich in kleinen Schritten vorrangehen.</p>
<p>Man hat mir auch schon gesagt das Java besser gewesen wäre, aber ich wollte halt was in c++ machen da ich java nicht kann um da etwas fitter zu werden und dan kam mir halt so eine &quot;hirnrissige idee&quot; mit dieser Datei<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230264</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jul 2012 10:46:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 10:47:49 GMT]]></title><description><![CDATA[<p>Ihr seid ja mal der Hammer ich doktor da Wochen dran rum und Ihr braucht 5 Minuten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
irgendwie deprimiert das:)</p>
<p>Auf jeden fall ma herzlichen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230265</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jul 2012 10:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 12:47:29 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Man hat mir auch schon gesagt das Java besser gewesen wäre, aber ich wollte halt was in c++ machen da ich java nicht kann um da etwas fitter zu werden und dan kam mir halt so eine &quot;hirnrissige idee&quot; mit dieser Datei<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
</blockquote>
<p>Mit Java hast du keine Vorteile - eher mit Python/Perl/Ruby oae.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230297</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 05 Jul 2012 12:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 20:41:49 GMT]]></title><description><![CDATA[<p>zum Einlesen des Eintrags ist mir noch eine weit lustigere Variante eingefallen, als mein erster Vorschlag oben:</p>
<pre><code class="language-cpp">// --   Streaming-Operator für das Lesen
// 1 &quot;35.121: [Full GC (System)
// 2      [PSYoungGen: 51172K-&gt;0K(764608K)]
// 3      [PSOldGen: 0K-&gt;50789K(1747648K)]
// 4          51172K-&gt;50789K(2512256K)
// 5      [PSPermGen: 73515K-&gt;73515K(147072K)],
//      .. Rest bis EOL&quot;
std::istream&amp; operator&gt;&gt;( std::istream&amp; in, Eintrag&amp; e )
{
    in &gt;&gt; e.prefix_;
    //                    +--- Zeichen für 'Zahl lesen'
    //                    |+-- lese bis zum folgenden Zeichen
    //                    ||             |3       |4        |5
    const char* format = &quot;%_:[_[_:%_(%_)_-&gt;%K(%K)]%K-&gt;%K(%K)[_:%K-&gt;%K(%K)]_\n&quot;;
    int i=0;
    for( const char* p = format+2; *p; ++p )
        *p == *format ? in &gt;&gt; e.ps_[i++]: *p == *(format+1)? in.ignore( std::numeric_limits&lt; std::streamsize &gt;::max(), *++p ): in &gt;&gt; check( *p );
    return in;
}
</code></pre>
<p>Dazu braucht man noch die <code>struct check</code> :</p>
<pre><code class="language-cpp">struct check
{
    check( char c ) : c_( c ) {}
    friend std::istream&amp; operator&gt;&gt;( std::istream&amp; in, check ch )
    {
        char c;
        if( in &gt;&gt; c &amp;&amp; c != ch.c_ )
            in.setstate( std::ios_base::failbit );
        return in;
    }
private:
    char c_;
};
</code></pre>
<p>Die Variante ist sicherer, was den Syntax-Check angeht, und auch universeller einsetzbar.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230474</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 05 Jul 2012 20:41:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 05 Jul 2012 21:19:37 GMT]]></title><description><![CDATA[<p>jetzt noch mit tmp? ist ja nicht viel anders als brainfuck... :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230482</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 05 Jul 2012 21:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Fri, 06 Jul 2012 08:02:03 GMT]]></title><description><![CDATA[<p>Na ja mit dem letzten code kann ich mal gar nichts anfangen, da verbiegen sich bei mir die Hirnwindungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> , leider bin ich ja auch noch lange nicht so fit wie ihr <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="😃"
    /><br />
_____________________________________________</p>
<p>Aber hätte noch eine Frage??? <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="😕"
    /></p>
<p>Warum muss ich <strong>&quot;FETT&quot;</strong> das nochmal aufrufen und ohne File Angabe? Oder ist das nur ein Platzhalter?</p>
<p>copy( istream_iterator&lt; Eintrag &gt;(f1), <strong>istream_iterator&lt; Eintrag &gt;(),</strong> ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );</p>
<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Hallo Fill,</p>
<p>... copy( istream_iterator&lt; Eintrag &gt;(f1), istream_iterator&lt; Eintrag &gt;(), ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );...</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2230519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230519</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 06 Jul 2012 08:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Fri, 06 Jul 2012 08:05:25 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Warum muss ich <strong>&quot;FETT&quot;</strong> das nochmal aufrufen und ohne File Angabe? Oder ist das nur ein Platzhalter?</p>
<p>copy( istream_iterator&lt; Eintrag &gt;(f1), <strong>istream_iterator&lt; Eintrag &gt;(),</strong> ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );</p>
</blockquote>
<p>Das copy muss wisssen, bis wohin kopiert werden soll. Ein istream_iterator ohne Streamargument im Konstruktor steht für das Ende eines Streams. Siehe:<br />
<a href="http://www.cplusplus.com/reference/std/iterator/istream_iterator/" rel="nofollow">http://www.cplusplus.com/reference/std/iterator/istream_iterator/</a><br />
<a href="http://www.cplusplus.com/reference/algorithm/copy/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/copy/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230522</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 06 Jul 2012 08:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Fri, 06 Jul 2012 15:04:02 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Na ja aus den Zahlen wollte ich dann nachher eventuell ein kleines Diagramm zeichnen lassen. <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>Man hat mir auch schon gesagt das Java besser gewesen wäre, aber ich wollte halt was in c++ machen da ich java nicht kann um da etwas fitter zu werden und dan kam mir halt so eine &quot;hirnrissige idee&quot; mit dieser Datei<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
</blockquote>
<p>Du solltest uns etwas mehr über deine Ziele mitteilen.<br />
Zahlenwerte aus einer Datei rauslesen, geht so gut wie mit jeder Programmiersprache und sogar mit Applikationen.</p>
<p>Nimm eine Tabellenkalkulation Excel oder OpenOffice:</p>
<ul>
<li>Kann auch Diagramme erzeugen</li>
<li>Kann strukturierte Text-Dateien einlesen</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/2230634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230634</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Fri, 06 Jul 2012 15:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Mon, 09 Jul 2012 08:49:03 GMT]]></title><description><![CDATA[<p>Nochmal Hallo,</p>
<p>alles funktioniert nun einwandfrei *freu*<br />
--- Auf basis von &quot;Werner Salomon&quot; 22:41:49 05.07.2012---</p>
<p>Nur hat meine Aufzeichnung nun einen &quot;kritischen Wert&quot; erreicht.</p>
<p><strong>126032.403:</strong> [Full GC (System) [PSYoungGen: 2400K-&gt;0K(764608K)] [PSOldGen: 58257K-&gt;51512K(1747648K)] 60657K-&gt;51512K(2512256K) [PSPermGen: 81683K-&gt;81341K(82112K)], 0.3413080 secs] [Times: user=0.34 sys=0.00, real=0.34 secs]</p>
<p>Wenn nun mein Zeitstempel immer größer wird <strong>&quot;FETT&quot;</strong>, dann ist nachher nur noch <strong>126032</strong> zu sehen. Der rest .403 wird verschluckt.</p>
<p>Nun habe ich versucht im Programm die Datentypen zu vergrößern also &quot;long&quot;, dies hatte aber nicht den gewünschten Erfolg.</p>
<p>Dann habe ich mal etwas mit Zahlen gespielt<br />
z.b. 200000000 der wird schön ausgegeben, aber sobald was mit Komma kommt schmeist der das weg z.B. 200000000.222</p>
<p>Kann es sein, dass das Programm automatisch castet und rundet und wenn ja wie unterbinde ich das?</p>
<p>Scchöne Grüße<br />
Fill</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231179</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Mon, 09 Jul 2012 17:13:19 GMT]]></title><description><![CDATA[<p>float und double sind mMn. denkbar schlechte Typen für Zeitstempel. Zumindest wenn der Zeitstempel exakt gespeichert/verarbeitet werden soll. Das geht mit float/double nämlich nur, wenn die binäre (!) Darstellung der Kommazahl ausreichend wenig signifikante Stellen hat.</p>
<p>Was noch dazukommt: je nach verwendeter Funktion (printf, operator &lt;&lt; (ostream, ...), ...) werden floats/doubles per Default unterschiedlich genau formatiert. Und das kann eben dazu führen, dass Kommastellen die eigentlich da wären einfach nicht angezeigt werden.</p>
<p>Kann man natürlich alles mittels diverser Formatierungs-Optionen umstellen, aber es bleibt immer noch das Problem dass sich Dezimal-mit-Kommastellen nicht gut mit Binär-mit-Kommastellen verträgt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231411</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 09 Jul 2012 17:13:19 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Mon, 09 Jul 2012 18:06:06 GMT]]></title><description><![CDATA[<p>Hallo Fill,</p>
<p>hustbaer hat wahrscheinlich recht mit seinem Verdacht, dass es sich nur um ein Darstellungsproblem handelt. Ein double reicht für 126032.403 locker aus.<br />
Füge in meinem Listing vor dem 'copy( istream_iterator&lt;&gt;..' noch eine Formatierung für double ein:</p>
<pre><code class="language-cpp">f2.precision(3);
    f2 &lt;&lt; fixed;
    copy( istream_iterator&lt; Eintrag &gt;(f1), istream_iterator&lt; Eintrag &gt;(), ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );
</code></pre>
<p>Damit erzwingst Du, dass double mit 3 Nachkommastellen ausgegeben wird.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231418</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 09 Jul 2012 18:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Tue, 10 Jul 2012 07:35:13 GMT]]></title><description><![CDATA[<p>Danke für die thematisch Erörterrung!!</p>
<p>Sind diese Delauft-Werte in denen automatisch und unterschiedlich Formatiert wird eigentlich willkürlich ausgedachte Standardts oder entspricht das einer durchdachten Norm von c++.</p>
<p>Habe ich nur das Gefühl, dass das suboptimal ist oder ist meine Aufgabe eher Suboptimal <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>Dabei dachte ich das c++ mehr Vorgaben/-schriften bekommen hat wie C um es &quot;sicherer/einfacher&quot; zu machen und nun muss ich quasi doch so spitzfindig sein? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
____________________________________________<br />
Auf jeden fall super lieben Dank für die Komments bis jetzt, ihr habt mich echt weitergebracht und es macht sogar richtig spaß in diesem Forum</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231535</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 10 Jul 2012 07:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Tue, 10 Jul 2012 07:59:35 GMT]]></title><description><![CDATA[<p>Der Anfangswert für precision ist laut Standard als 6 definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231540</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Jul 2012 07:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Tue, 10 Jul 2012 10:05:36 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Dabei dachte ich das c++ mehr Vorgaben/-schriften bekommen hat wie C um es &quot;sicherer/einfacher&quot; zu machen und nun muss ich quasi doch so spitzfindig sein? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Nein, du musst bloss den passenden Datentyp verwenden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231588</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 10 Jul 2012 10:05:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Fri, 20 Jul 2012 09:54:36 GMT]]></title><description><![CDATA[<p>Hallo, ich bin's wieder.</p>
<p>zu meiner Freude läuft das Programm auf basis von WERNER SALOMON (Thread 12:43:51 05.07.2012) einwandfrei und konnte es gut weiterverarbeiten.</p>
<p>Nun habe ich feststellen müssen, das in meine Textdatei 1 mal im Monat ein Sondereintag (Sonderprüfung) stadtfindet. <strong>Und zwar kein Full GC sondern nur ein CG</strong></p>
<p>....<br />
3636.211: [Full GC (System) [PSYoungGen: 6520K-&gt;0K(764608K)] [PSOldGen: 50789K-&gt;56413K(1747648K)] 57309K-&gt;56413K(2512256K) [PSPermGen: 82267K-&gt;82267K(172288K)], 0.3546920 secs] [Times: user=0.35 sys=0.00, real=0.36 secs]<br />
<strong>7237.275: [GC [PSYoungGen: 91438K-&gt;2416K(764608K)] 147852K-&gt;58829K(2512256K), 0.0123960 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]</strong><br />
7237.287: [Full GC (System) [PSYoungGen: 2416K-&gt;0K(764608K)] [PSOldGen: 56413K-&gt;58662K(1747648K)] 58829K-&gt;58662K(2512256K) [PSPermGen: 82381K-&gt;82381K(170048K)], 0.3349310 secs] [Times: user=0.33 sys=0.00, real=0.34 secs]<br />
...</p>
<p>Ab hier bricht das Programm dann ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
_____________________________________<br />
Wie ich aus der Zeile <strong>GC</strong> meine gewünschten Zahlen herausbekomme weiß ich nun dank euch.</p>
<p>Nur wie kann ich in das Programm einbauen, dass die Zeilen vorab geprüft werden ob ein FullGC oder ein GC vorliegt, um dann mit einem passenden Copy(...); darauf zu reagieren.</p>
<pre><code class="language-cpp">int main() 
{ 
    using namespace std; 
    ifstream f1(&quot;test.txt&quot;); 
    ofstream f2(&quot;backtest.txt&quot;); 
    if( !f1.is_open() || !f2.is_open() ) 
    { 
        cerr &lt;&lt; &quot;Fehler beim Oeffnen einer der Dateien&quot; &lt;&lt; endl; 
        return -2; 
    } 
	struc.precision(3);															// 3 Nachkommastelen erzwingen
    struc &lt;&lt; fixed;																// Keine expot. Darstellung =&gt; Ganzzahl
    copy( istream_iterator&lt; Eintrag &gt;(f1), istream_iterator&lt; Eintrag &gt;(), ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );
     return 0; 
}
</code></pre>
<p>Habe mir überlegt, ob ich zwischen Zeile 10 und 14 irgendwie die Zeile Abfrage, dann prüfe und dann mit einer IF-Schleife in den passenden Coppy(..); gehe.<br />
Aber ich muss das irgendwie immer Zeilenweise machen und nicht die gesammte Datei...hm...</p>
<p>Hat mir eventuell jm. einen Gedankengang wie ich das umsetzen könnte?</p>
<p>Herzlichen Dank schon mal<br />
Fill</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234310</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 20 Jul 2012 09:54:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Fri, 20 Jul 2012 15:58:08 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Habe mir überlegt, ob ich zwischen Zeile 10 und 14 irgendwie die Zeile Abfrage, dann prüfe und dann mit einer <a href="http://www.if-schleife.de/" rel="nofollow">IF-Schleife</a> in den passenden Coppy(..); gehe.</p>
</blockquote>
<p>Hallo Fill,</p>
<p>wenn Du eine Änderung machen willst (und das gilt immer bei Programmänderungen), so solltest Du zunächst feststellen, welches Modul/Funktion für diese Funktionalität, die Du ändern willst, verantwortlich ist.<br />
Was Du hier vorhast, ist das Einlesen zu ändern. Das Einlesen geschieht im Streaming-Operator von <code>struct Eintrag</code> ; also ist da die Baustelle, nirgendwo sonst.</p>
<p>Wenn man die <a href="http://www.c-plusplus.net/forum/p2230474#2230474" rel="nofollow">lustige Variante</a>, die ich bereits gepostet habe, weiter entwickelt, so kann sie auch das.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt; // copy
#include &lt;fstream&gt;
#include &lt;iterator&gt; // i(o)stream_iterator
#include &lt;iostream&gt;
#include &lt;limits&gt; // numeric_limits
#include &lt;string&gt;

struct check
{
    check( char c ) : c_( c ) {}
    friend std::istream&amp; operator&gt;&gt;( std::istream&amp; in, check ch )
    {
        char c;
        if( in &gt;&gt; c &amp;&amp; c != ch.c_ )
            in.setstate( std::ios_base::failbit );
        return in;
    }
private:
    char c_;
};

struct Eintrag
{
    static int const N = 10;
    double time_;
    int ps_[N];
};

// --   Streaming-Operator für das Lesen
//      einiger(!) Logging Ausgaben des Garbage Collectors von Java
//      Bem.: PS := Parallel Scavenge (scavenge -&gt; Reinigung)
//
//  Format: (Beispiel, im Orginal einzeilig)
//  35.121:
//      [Full GC (System)
//          [PSYoungGen: 51172K-&gt;0K(764608K)]
//          [PSOldGen: 0K-&gt;50789K(1747648K)]
//          51172K-&gt;50789K(2512256K)
//          [PSPermGen: 73515K-&gt;73515K(147072K)],
//      .. Rest bis EOL
//
//  -oder:
//  7237.275:
//      [GC
//          [PSYoungGen: 91438K-&gt;2416K(764608K)]
//          147852K-&gt;58829K(2512256K),
//      .. Rest bis EOL
//
std::istream&amp; operator&gt;&gt;( std::istream&amp; in, Eintrag&amp; e )
{
    const std::streamsize ALL = std::numeric_limits&lt; std::streamsize &gt;::max();
    std::string token;
    (in &gt;&gt; e.time_).ignore( ALL, '[' ) &gt;&gt; token;
    const char* format = token == &quot;Full&quot;?
    //   +--- [0] Zeichen für 'Zahl lesen'
    //   |+-- [1] lese bis zum folgenden Zeichen
    //   ||+- [2] nächstes Element mit 0 belegen
    //   |||
    //   |||&lt;- Young --&gt;&lt;- Old --&gt;&lt;-- nn --&gt;&lt;--- Perm ---&gt;
        &quot;%_#_[_:%K_(%K)][_&gt;%K(%K)]%K-&gt;%K(%K)[_:%K-&gt;%K(%K)]_\n&quot;: // Full GC (System)
        &quot;%_#_[_:%K_(%K)]&quot;  &quot;##&quot;  &quot;%K-&gt;%K(%K)&quot;   &quot;###&quot;    &quot;_\n&quot;; // GC
    int* dst = e.ps_;
    for( const char* p = format+3; *p; ++p )
    {
        if( *p == format[0] )
            in &gt;&gt; *dst++;
        else if( *p == format[1] )
            in.ignore( ALL, *++p );
        else if( *p == format[2] )
            *dst++ = 0; // Eintrag hier nicht vorhanden
        else
            in &gt;&gt; check( *p );
    }
    return in;
}

// --   Streaming-Operator für das Schreiben
std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, const Eintrag&amp; e )
{
    out &lt;&lt; e.time_ &lt;&lt; &quot; &quot;;
    std::copy( e.ps_, e.ps_ + Eintrag::N, std::ostream_iterator&lt; int &gt;( out, &quot; &quot; ) );
    return out;
}

int main()
{
    using namespace std;
    ifstream f1(&quot;test.txt&quot;);
    ofstream f2(&quot;backtest.txt&quot;);
    if( !f1.is_open() || !f2.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen einer der Dateien&quot; &lt;&lt; endl;
        return -2;
    }
    copy( istream_iterator&lt; Eintrag &gt;(f1), istream_iterator&lt; Eintrag &gt;(), ostream_iterator&lt; Eintrag &gt;(f2, &quot;\n&quot;) );
    return 0;
}
</code></pre>
<p>beachte bitte, dass ich die gelesenen Zahlen nicht einfach in das Feld von <code>Eintrag</code> fülle, sondern zunächst noch zwei Elemente mit 0 belege. Das ist dann der fehlende Eintrag für das Feld <code>[PSOldGen]</code> .<br />
In den Zeilen 60 und 61 habe ich das Format für <code>Full GC</code> und <code>GC</code> definiert.<br />
Wenn Du dazu Fragen hast, so nur heraus damit.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2234430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2234430</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 20 Jul 2012 15:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Tue, 24 Jul 2012 07:29:49 GMT]]></title><description><![CDATA[<p>Hallo Werner,</p>
<p>danke für die Antwort. Ich hatte zu beginn bewusst deine &quot;lustige Variante&quot; nicht genomme, da ich leider nur 40% davon verstanden habe. Also den &quot;struct check&quot; und den &quot;streaming operator&quot;.</p>
<p>Wenn du mir allerdings anbietest meine Fragen dazu zu beantworten, dann werde ich ihn wohl einsetzen, weil ich grundsätzlich nur das verwenden will was ich auch verstehen und handhaben kann.<br />
__________________________________<br />
<strong>Ich würde mich bei den Zeilenangaben auf deinen letzten Post beziehen.</strong></p>
<p>8-20 Ich verstehe nicht warum nach dem friend(11) eine Schachtelung erfolgt und was diese bewirkt (12 u. 17)</p>
<p>18-19 Also private kenn ich, aber in der Form habe ich das noch nie eingesetzt. Sondern nur wenn ich ne Klasse private oder public gemacht habe. Daher erschließt sich mir der Teil nicht, da er mittem im struct ist.</p>
<p>54 Was bezweckt diese Zeile mit dem Gleich und dem Vergleich-Operator?</p>
<p>63-73 Ich kann mit zwar zusammenreimen was die Funktion macht und die Erklärung von dir bestätigt das auch, aber die Frage ist wie macht sie das.<br />
In der for-schleife prüfst du ja ob % oder _ oder # vorhanden ist.<br />
Pointer / Zeiger kenne ich zwar auch, aber da ich nicht so fit bin verbiegt es hier meine Hirnwindungen <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>Und allgemein, bzum Leseoperator.<br />
Betrachtet er eine Zeile und springt dann in die nächste ? (wenn ja wie? wo? oder macht das die for schleife)<br />
Oder geht er das Dokument auf einmal durch und merkt dann wenn die Zeile zuende ist?<br />
_____________________________________________<br />
Es tut mir sehr leid wenn ich so viele Fragen stelle, leider ist dieser Programmcode doch zu hoch für mich, um ihn in seiner Gesammtheit zu überschauen.</p>
<p>Auf jeden Fall herzlichen Dank für die Mühe deinerseits</p>
<p>Grüße</p>
<p>Fill</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235122</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 24 Jul 2012 07:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Tue, 24 Jul 2012 09:29:38 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>8-20 Ich verstehe nicht warum nach dem friend(11) eine Schachtelung erfolgt und was diese bewirkt (12 u. 17)</p>
</blockquote>
<p>Die Schachtelung kommt von der Funktion die in Zeile 11 anfängt. Das friend bezieht sich auf diese Funktion. Die Funktion hat einen etwas ungewöhnlichen Namen, operator&gt;&gt;, ist aber ansonsten eine Funktion wie jede andere auch. Der ungewöhnliche Name macht, dass man sie später auch mittels</p>
<pre><code class="language-cpp">istreamobjekt &gt;&gt; checkobjekt;
</code></pre>
<p>aufrufen kann, anstatt nur mit</p>
<pre><code class="language-cpp">operator&gt;&gt;(istreamobjekt, checkobjekt);
</code></pre>
<p>. Das nennt man Operatorüberladung.</p>
<p>Beachte, dass die Funktion kein Member von check ist. Das friend macht an dieser Stelle nicht nur, dass die Funktion auf die privaten Member von check zugreifen kann, sondern auch, dass sie frei im Namensraum von check liegt, obwohl sie in check definiert wird.</p>
<blockquote>
<p>18-19 Also private kenn ich, aber in der Form habe ich das noch nie eingesetzt.</p>
<blockquote>
<p>Dann kennst du private nicht wirklich, denn hier hat es genau die gleiche Bedeutung wie anderswo, denn es gibt nur eine Bedeutung.</p>
</blockquote>
<p>Sondern nur wenn ich ne Klasse private oder public gemacht habe.</p>
</blockquote>
<p>Man kann keine Klassen private oder public machen, sondern nur gewisse Member. Verwirrt dich das struct? struct und class sind in C++ das gleiche, einziger(!) Unterschied ist, bei class ist alles private, sofern man es nicht public macht, bei struct ist alles public, solange man es nicht private macht. (Oder protected, was ich jetzt mal unterschlagen habe, ist überall noch eine dritte Möglichkeit)</p>
<blockquote>
<p>Daher erschließt sich mir der Teil nicht, da er mittem im struct ist.</p>
</blockquote>
<p>Dann hast du private und public wirklich nicht verstanden. Da check ein struct ist, ist alles was vor dem private steht public, das ist in diesem Fall nur der Konstruktor in Zeile 10 (der friend in Zeile 11 ist sowieso keine Memberfunktion und nicht betroffen von public/private, siehe oben). Alles nach dem private ist private, also der Member c_ ist von außen unsichtbar.</p>
<blockquote>
<p>54 Was bezweckt diese Zeile mit dem Gleich und dem Vergleich-Operator?</p>
</blockquote>
<p>Das ist eine Zeile bis einschließlich 62.</p>
<p>Du kennst den ternären Operator?</p>
<pre><code class="language-cpp">a = b ? c : d;
</code></pre>
<p>Das ist eine andere Schreibweise für</p>
<pre><code class="language-cpp">if (b)
 a = c;
else
 a = d;
</code></pre>
<p>Da steht also:</p>
<pre><code class="language-cpp">if (token == &quot;Full&quot;?)
  format = &quot;%_#_[_:%K_(%K)][_&gt;%K(%K)]%K-&gt;%K(%K)[_:%K-&gt;%K(%K)]_\n&quot;;
else
  format = &quot;%_#_[_:%K_(%K)]&quot;  &quot;##&quot;  &quot;%K-&gt;%K(%K)&quot;   &quot;###&quot;    &quot;_\n&quot;;
</code></pre>
<blockquote>
<p>63-73 Ich kann mit zwar zusammenreimen was die Funktion macht und die Erklärung von dir bestätigt das auch, aber die Frage ist wie macht sie das.<br />
In der for-schleife prüfst du ja ob % oder _ oder # vorhanden ist.<br />
Pointer / Zeiger kenne ich zwar auch, aber da ich nicht so fit bin verbiegt es hier meine Hirnwindungen <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>Ich behaupte mal, wenn ich es dir erkläre, verstehst du es nicht oder die Erklärung wird lang wie ein Lehrbuch. Daher: Lies erst einmal ein Lehrbuch, bis du weißt, wie die Streams funktionieren und ein bisschen über Pointerarithmetik. Wichtig ist, dass es ein gutes Buch ist, sonst werden die Streams nicht richtig erklärt (dafür wird aber wahrscheinlich viel zu viel Gewicht auf Pointer gelegt :p ). Siehe zweiter Link in meiner Signatur.</p>
<blockquote>
<p>Und allgemein, bzum Leseoperator.</p>
</blockquote>
<p>Welchem? Der Code definiert gerade zwei eigene Operatoren, die jeweils unzählige verschiedene andere Leseoperatoren benutzen. Ich nehme mal an, du meinst den in Zeile 49:</p>
<blockquote>
<p>Betrachtet er eine Zeile und springt dann in die nächste ? (wenn ja wie? wo? oder macht das die for schleife)</p>
</blockquote>
<p>Er liest so lange, wie das Format stimmt. Da das Format mit einem Zeilenumbruchzeichen endet (siehe Zeilen 61 und 62), wird er bei Erfolg eine ganze Zeile gelesen haben. Bei Misserfolg wird er irgendwo stehen bleiben. Er endet aber nicht prinzipbedingt auf dem Zeilenende, sondern wirklich nur wegen des Formatstrings der hier so gegeben ist. Zeilenumbrüche sind keine besonderen Zeichen für den Computer, die Sonderrolle die du ihnen zusprichst kommt allein aus ihrer üblichen Darstellung auf dem Bildschirm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235162</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Jul 2012 09:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 26 Jul 2012 08:30:29 GMT]]></title><description><![CDATA[<blockquote>
<p>Man kann keine Klassen private oder public machen, sondern nur gewisse Member. Verwirrt dich das struct?</p>
</blockquote>
<p>Voll verwirrt, aber ich habe es noch einmal nachgelesen. Ich habe hier wohl einige sachen durcheinander gebracht.</p>
<p>Ein gutes Buch habe ich schon &quot;c++ von A-Z von Jürgen Wolf&quot; und sogar in Hardwareform:)</p>
<blockquote>
<p>Das ist eine Zeile bis einschließlich 62.<br />
if (b)<br />
a = c;<br />
else<br />
a = d;</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> klar kenn ich das <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> das hätte ich aber nie erkannt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> wie blöd kann man sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> vor lauber Bäumen sieht man den Wald nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> habe leider noch nicht so das geschulte Auge, sorry</p>
<p>Das hat mich schon mal super weiter gebracht vielen Dank, da kommt gleich licht in's dunkel <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>63-73 Ich kann mit zwar zusammenreimen was die Funktion macht und die Erklärung von dir bestätigt das auch, aber die Frage ist wie macht sie das.</p>
</blockquote>
<p>Und wieder geht mir ein Licht auf. C kann ich ja etwas besser wie C++ nun habe ich herausgefunden das in C++ pointer anderster geschrieben werden wie in C. Also z.b. char* format bzw. char *format...das war der Grund wieso ich das nicht verstanden habe <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>Also nun blicke ich langsam durch, danke für die Mühen mir da weiter zu helfen.</p>
<p>_________________________________________________</p>
<p>Nun noch eine Frage, bei der ich noch keine 100% Antwort gefunden habe wie das der Code macht.</p>
<p><strong>Also:</strong><br />
Meine Zeile 95 ist ja mein copy, welches die f1 in die datei f2 kopiert, mit dem Zahlenselektiervorgang im istream (Zeile 49)</p>
<p>Soweit so gut.<br />
Ich verstehe noch immer nicht woher das Programm weiß, dass wann und wo eine Zeile zuende ist, bzw. er eine Neue anfangen muss.<br />
Klar /n kenne ich und es ist ein Zeichen wie jedes andere.<br />
Die Frage ist auch schwer zu formulieren, tut mir leid ich versuche es etwas Bildhafter.</p>
<p>Ich stelle mir immer vor, dass es eine Schleife ist, in der nur eine Zeile gelesen wird z.B. über getline. Diese wird dann abgearbeitet und dann beginnt die Schleife nach prüfung ob noch weitere Zeilen vorhanden sind erneut eine ein zu lesen und zu bearbeiten...usw.. bis keine mehr vorhanden sind. (eventuell zu nahe an der C Programmierung) aber so stelle ich mir das vor.<br />
Das ist ja aber in diesem Programm so nicht der Fall?! oder für mich nicht erkennbar.</p>
<p>Hat das etwas mit dem struct &quot;Eintrag&quot; zu tun mit int const N=10 und dem double time? Weil das würden ja dann meine 11 Werte ergeben. Und wenn diese bedient sind wendert er den struct &quot;Eintrag&quot; erneut an nach dem oder vordem er Rausgeschrieben hat? Liege ich da mit der denkweise richtig?</p>
<p>Puh ich hoffe ich konnte mich irgendwie verständlcih machen. Und es tut mir leid wenn ich euch eventuell mit solchen Grundlagen maltretiere.</p>
<p>Dennoch herzlichen Dank, auf jedenfall macht es mir Spaß etwas Zeit in die Programmierung zu stecken.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235840</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 26 Jul 2012 08:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 26 Jul 2012 09:36:26 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Ein gutes Buch habe ich schon &quot;c++ von A-Z von Jürgen Wolf&quot; und sogar in Hardwareform:)</p>
</blockquote>
<p>Das ist <strong>kein</strong> gutes Buch, es ist sogar ein ausgesprochen schlechtes. Eine zeitlang bestand das halbe Forum besteht nur aus Threads, die auf die Pfuscherfehler in diesem Buch zurück zu führen waren. Es gilt sogar die Vermutung, dass man schlechter in C++ wird, wenn man dieses Buch liest.</p>
<blockquote>
<p>Und wieder geht mir ein Licht auf. C kann ich ja etwas besser wie C++ nun habe ich herausgefunden das in C++ pointer anderster geschrieben werden wie in C. Also z.b. char* format bzw. char *format...das war der Grund wieso ich das nicht verstanden habe <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>
</blockquote>
<p>Pointer schreibt man in C und C++ eigentlich genau gleich.</p>
<pre><code class="language-cpp">int * a;
int* a;
int *a;
</code></pre>
<p>Alles das gleiche. Es gelten jedoch in C++ entschieden andere Umwandlungsregelungen für Pointer.</p>
<p>Tut mir leid, habe gerade keine Zeit, noch auf den Rest zu antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235865</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Jul 2012 09:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich variable Zahlen aus einer Zeile, die in einem Buffer ist, extrahieren? on Thu, 26 Jul 2012 10:13:39 GMT]]></title><description><![CDATA[<p>FillColin schrieb:</p>
<blockquote>
<p>Ein gutes Buch habe ich schon &quot;c++ von A-Z von Jürgen Wolf&quot;</p>
</blockquote>
<p>Auf die Google-Anfrage &quot;Jürgen Wolf C++&quot; ist <a href="http://www.c-plusplus.net/forum/272350" rel="nofollow">dies der erste Treffer</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235874</guid><dc:creator><![CDATA[Warnung]]></dc:creator><pubDate>Thu, 26 Jul 2012 10:13:39 GMT</pubDate></item></channel></rss>