<?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[lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline()]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe eine datei mit bspw. 3 werten in der ersten zeile und einem string in der zweiten.<br />
aber nachdem ich datei&gt;&gt;x&gt;&gt;y&gt;&gt;z; benutze, funktioniert die getline()-funktion nicht mehr richtig.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int main()
{
    int x,y,z;
    char test[100];
    ifstream datei(&quot;test.txt&quot;);
    datei&gt;&gt;x&gt;&gt;y&gt;&gt;z;
    datei.getline(test,sizeof(test));
    cout&lt;&lt;x&lt;&lt;&quot;  &quot;&lt;&lt;y&lt;&lt;&quot;  &quot;&lt;&lt;z&lt;&lt;endl; //funktioniert
    cout&lt;&lt;test; //wird nichts ausgegeben!
    datei.close();
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>die test.txt sieht so aus:</p>
<pre><code>1 2 3
das ist ein test
[...]
</code></pre>
<p>wie kann ich in einer datei also erst mit operator&gt;&gt; zahlenwerte einlesen (wovon mehrere in einer zeile stehen) und dann ganze zeilen als char[] ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228390/lesen-aus-datei-kombination-von-operator-gt-gt-und-getline</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 15:45:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228390.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Nov 2008 16:21:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 16:21:58 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe eine datei mit bspw. 3 werten in der ersten zeile und einem string in der zweiten.<br />
aber nachdem ich datei&gt;&gt;x&gt;&gt;y&gt;&gt;z; benutze, funktioniert die getline()-funktion nicht mehr richtig.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int main()
{
    int x,y,z;
    char test[100];
    ifstream datei(&quot;test.txt&quot;);
    datei&gt;&gt;x&gt;&gt;y&gt;&gt;z;
    datei.getline(test,sizeof(test));
    cout&lt;&lt;x&lt;&lt;&quot;  &quot;&lt;&lt;y&lt;&lt;&quot;  &quot;&lt;&lt;z&lt;&lt;endl; //funktioniert
    cout&lt;&lt;test; //wird nichts ausgegeben!
    datei.close();
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>die test.txt sieht so aus:</p>
<pre><code>1 2 3
das ist ein test
[...]
</code></pre>
<p>wie kann ich in einer datei also erst mit operator&gt;&gt; zahlenwerte einlesen (wovon mehrere in einer zeile stehen) und dann ganze zeilen als char[] ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621948</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Thu, 27 Nov 2008 16:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 16:26:46 GMT]]></title><description><![CDATA[<p>warum char[]</p>
<p>nutz doch std::string!</p>
<p>außerdem:<br />
<code>datei&gt;&gt;x&gt;&gt;y&gt;&gt;z;</code><br />
du bist also noch in der ersten zeile - und machst jetzt nen getline... bekommst also vermutlich nen leeren string...</p>
<p>wieso ist die datei so komisch aufgebaut und so weiter... erzähl ma bissl was über den hintergrund...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621952</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 27 Nov 2008 16:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 16:35:12 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>wieso ist die datei so komisch aufgebaut und so weiter... erzähl ma bissl was über den hintergrund...</p>
</blockquote>
<p>sie ist so aufgebaut, weil wertepaare zeilenweise geordnet dadrin stehen sollen<br />
z.b.</p>
<pre><code>name des ersten objekts
koordinate_x koo_y koo_z
farbkomponente_r farbe_g farbe_b
name des zweiten objekts
...
</code></pre>
<p>für die ganzen zahlenwerte ist dann halt &gt;&gt; praktischer, und für die stringzeilen getline()</p>
<p>std::string würde auch gehen, aber momentan benutze ich im programm für den objekttitel char*. daher wird ein char-wert gebraucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621958</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Thu, 27 Nov 2008 16:35:12 GMT</pubDate></item><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 16:38:07 GMT]]></title><description><![CDATA[<p>sorry für doppelpost. hab noch was vergessen.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>außerdem:<br />
<code>datei&gt;&gt;x&gt;&gt;y&gt;&gt;z;</code><br />
du bist also noch in der ersten zeile - und machst jetzt nen getline... bekommst also vermutlich nen leeren string...</p>
</blockquote>
<p>wie geh ich also an den anfang der nächsten zeile?<br />
hab schon seekg(tellg()+1) und varianten probiert, aber ohne erfolg.<br />
hab mit c++-dateiverarbeitung noch nich soviel erfahrung, bisher eher in C. wollt mich mal upgraden <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621962</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Thu, 27 Nov 2008 16:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 16:45:06 GMT]]></title><description><![CDATA[<p>also zu allererst solltest du mal char* verbannen und mit std::string arbeiten...</p>
<p>bei dem problem, dass du noch in der zeile bist kann ich dir auch nicht so richtig weiterhelfen - aber nen getline() vor dem eigtl getline() würde da abhilfe schaffen - wenns auch nicht gerad sehr elegant wäre...</p>
<pre><code>name des ersten objekts
koordinate_x koo_y koo_z
farbkomponente_r farbe_g farbe_b
</code></pre>
<p>Warum nicht so:</p>
<pre><code>koo_x koo_y koo_z farb_r farb_g farb_b name des objekts
</code></pre>
<p>da hat man den name des objektes zwar nicht mehr als erstes aber man hätte zumindest genau eine zeile pro eintrag...</p>
<p>aber wenn man bei deinem ansatz mit</p>
<pre><code>name des ersten objekts
koordinate_x koo_y koo_z
farbkomponente_r farbe_g farbe_b
</code></pre>
<p>bleibt, dann würde man doch eh zu erst das std::getline haben?! und dann erst den operator &gt;&gt;</p>
<p>btw. klingt das so, als ob die daten zusammengehören würden... wäre natürlich besser, wenn du ne klasse draus machen würdest und die operatoren &gt;&gt; und &lt;&lt; überlädst... dann hättest du nur noch das datei öffnen und schließen in der main drin...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621969</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 27 Nov 2008 16:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to lesen aus datei: kombination von operator&amp;gt;&amp;gt;() und getline() on Thu, 27 Nov 2008 17:41:19 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>aber wenn man bei deinem ansatz mit</p>
<pre><code>name des ersten objekts
koordinate_x koo_y koo_z
farbkomponente_r farbe_g farbe_b
</code></pre>
<p>bleibt, dann würde man doch eh zu erst das std::getline haben?! und dann erst den operator &gt;&gt;</p>
</blockquote>
<p>vor dem 1. datensatz stehen globale einstellungen (fullscreenflag, bildgröße, kameraposition, ...).</p>
<p>die idee, das einlesen als klassenfunktion zu machen ist gut. aber da komme ich ja nicht drumherum, den cursor an den anfang der nächsten zeile zu setzen.</p>
<p>zweimal hintereinander getline() funktioniert übrigens - aber ich geb dir recht, dass dss nicht sehr elegant ist <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="😉"
    /></p>
<p>das layout der datendatei möchte ich nicht ändern, weil da noch ein kleiner rattenschwanz dranhängt (ein anderes programm zum editieren derselben, außerdem müsste ich dann noch alle dateien konvertieren usw.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622005</guid><dc:creator><![CDATA[hermesasl]]></dc:creator><pubDate>Thu, 27 Nov 2008 17:41:19 GMT</pubDate></item></channel></rss>