<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Datei mit Kopfzeile einlesen]]></title><description><![CDATA[<p>Ich habe eine kurze Frage und komme nicht wirklich weiter. Ich habe eine txt-Datei. Diese Datei möchte ich einlesen und die Daten weiter verarbeiten. Das einlesen und verarbeiten ist im Prinzip ja einfach.<br />
In meinem Fall ist aber die Struktur der ersten Zeile anders als die Struktur der folgenden Zeilen - die Bedeutung der Werte ist dabei zwischen erster und den folgenden Zeilen unterschiedlich.</p>
<p>Bsp:<br />
Die erste Zeile enthält die Beschreibung eines Autos (PS/KM/Türen/Farbe) und sieht wie folgt aus:</p>
<p>Zeile 1: <code>144 33000 5 Rot</code></p>
<p>Die folgenden Zeilen beschreiben die Fahrer, welche mit dem Auto gefahren sind</p>
<p>Zeile 2: Meier Hans 25 3000 6.5<br />
Zeiel 3: Mueller Thomas 28 1200 6,8<br />
Zeile x: Mustermann Max 35 1000 6.0</p>
<p>Ich habe bisher immer getline verwendet um Zeilen aus einer Datei einzulesen - jetzt besteht aber das Problem, dass ich für den zweiten Teil (Fahrer) mit dem einlesen der Zeilen, erst in der zweiten Zeile beginnen will. Mein Beispielcode (ich hoffe so kurz wie möglich und lang wie nötig damit Ihr versteht was ich gemacht habe):</p>
<pre><code>ifstream datei (&quot;C:\\.....\\Daten_1A.txt&quot;);
    string zeile;

    getline(datei, zeile); // Einlesen der ersten Zeile
    int aa; // PS
    int bb; // km
    int cc; // Tueren
    string dd; // Farbe
    stringstream zeilenpuffer(zeile);
    zeilenpuffer &gt;&gt; aa &gt;&gt; bb &gt;&gt; cc &gt;&gt; dd; // Einlesen
    // hier erfolgt dann die Verarbeitung der Daten der ersten  -&gt; z.B. Bildung eines Objekts einer Klasse

    while(getline(datei, zeile)) // Hier soll erst ab der zweiten Zeile gelesen werden !!!!!!!!!
    {
        string a; // PS
        string b; // km
        int c; // Alter
        int d; // gefahrene Kilometer
        double e; // durchschnittler Verbrauch

        stringstream zeilenpuffer(zeile);

        zeilenpuffer &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d; // Einlesen
        // hier erfolgt dann die Verarbeitung der Daten der folgenden Zeile innerhalb der Schleife
    }
</code></pre>
<p>Wie Ihr seht, ist mein Ansatz eine Mischung aus getline und getline in einer Schleife - ich habe jedoch keine Möglichleit gefunden mit dem Auslösen des Einlesen innerhalb der Schleife erst in der zweiten Schleife zu beginnen (kann ich getline() überschreiben? Kann mit jemand helfen? Ich weiß das die Lösung wahrscheinlich einfach ist, aber ich konnte nichts passendes in den vielen Themen zu meiner Frage finden. Ich denke vielleicht habe ich mich auch mit meinem Ansatz verrant.<br />
Auch andere Lösungsansatze interessieren mich, jedoch kann ich die einzulesende Datei nicht verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339424/datei-mit-kopfzeile-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 07:33:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339424.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Aug 2016 16:56:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei mit Kopfzeile einlesen on Mon, 29 Aug 2016 16:56:14 GMT]]></title><description><![CDATA[<p>Ich habe eine kurze Frage und komme nicht wirklich weiter. Ich habe eine txt-Datei. Diese Datei möchte ich einlesen und die Daten weiter verarbeiten. Das einlesen und verarbeiten ist im Prinzip ja einfach.<br />
In meinem Fall ist aber die Struktur der ersten Zeile anders als die Struktur der folgenden Zeilen - die Bedeutung der Werte ist dabei zwischen erster und den folgenden Zeilen unterschiedlich.</p>
<p>Bsp:<br />
Die erste Zeile enthält die Beschreibung eines Autos (PS/KM/Türen/Farbe) und sieht wie folgt aus:</p>
<p>Zeile 1: <code>144 33000 5 Rot</code></p>
<p>Die folgenden Zeilen beschreiben die Fahrer, welche mit dem Auto gefahren sind</p>
<p>Zeile 2: Meier Hans 25 3000 6.5<br />
Zeiel 3: Mueller Thomas 28 1200 6,8<br />
Zeile x: Mustermann Max 35 1000 6.0</p>
<p>Ich habe bisher immer getline verwendet um Zeilen aus einer Datei einzulesen - jetzt besteht aber das Problem, dass ich für den zweiten Teil (Fahrer) mit dem einlesen der Zeilen, erst in der zweiten Zeile beginnen will. Mein Beispielcode (ich hoffe so kurz wie möglich und lang wie nötig damit Ihr versteht was ich gemacht habe):</p>
<pre><code>ifstream datei (&quot;C:\\.....\\Daten_1A.txt&quot;);
    string zeile;

    getline(datei, zeile); // Einlesen der ersten Zeile
    int aa; // PS
    int bb; // km
    int cc; // Tueren
    string dd; // Farbe
    stringstream zeilenpuffer(zeile);
    zeilenpuffer &gt;&gt; aa &gt;&gt; bb &gt;&gt; cc &gt;&gt; dd; // Einlesen
    // hier erfolgt dann die Verarbeitung der Daten der ersten  -&gt; z.B. Bildung eines Objekts einer Klasse

    while(getline(datei, zeile)) // Hier soll erst ab der zweiten Zeile gelesen werden !!!!!!!!!
    {
        string a; // PS
        string b; // km
        int c; // Alter
        int d; // gefahrene Kilometer
        double e; // durchschnittler Verbrauch

        stringstream zeilenpuffer(zeile);

        zeilenpuffer &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d; // Einlesen
        // hier erfolgt dann die Verarbeitung der Daten der folgenden Zeile innerhalb der Schleife
    }
</code></pre>
<p>Wie Ihr seht, ist mein Ansatz eine Mischung aus getline und getline in einer Schleife - ich habe jedoch keine Möglichleit gefunden mit dem Auslösen des Einlesen innerhalb der Schleife erst in der zweiten Schleife zu beginnen (kann ich getline() überschreiben? Kann mit jemand helfen? Ich weiß das die Lösung wahrscheinlich einfach ist, aber ich konnte nichts passendes in den vielen Themen zu meiner Frage finden. Ich denke vielleicht habe ich mich auch mit meinem Ansatz verrant.<br />
Auch andere Lösungsansatze interessieren mich, jedoch kann ich die einzulesende Datei nicht verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506981</guid><dc:creator><![CDATA[xxLKMxx]]></dc:creator><pubDate>Mon, 29 Aug 2016 16:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Datei mit Kopfzeile einlesen on Mon, 29 Aug 2016 17:07:13 GMT]]></title><description><![CDATA[<p>Die Schleife fängt doch mit der zweiten Zeile an. Wo ist das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506983</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 29 Aug 2016 17:07:13 GMT</pubDate></item><item><title><![CDATA[Reply to Datei mit Kopfzeile einlesen on Mon, 29 Aug 2016 17:09:40 GMT]]></title><description><![CDATA[<pre><code>//Zeile überspringen, wenn nicht geht, zurückgehen.
if(!getline(datei, zeile))
    return;

//Und dann einfach weitermachen.
while(getline(datei, zeile))
{...}
</code></pre>
<p>Oder verpasse ich grad was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2506985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2506985</guid><dc:creator><![CDATA[dachschaden]]></dc:creator><pubDate>Mon, 29 Aug 2016 17:09:40 GMT</pubDate></item></channel></rss>