<?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[ifstream.tellg() mit g++ 3.4.5 erzeugt seltsamen Fehler ...]]></title><description><![CDATA[<p>Ich habe eine Textdatei mit unterschiedlich langen Zeilen. Von dieser Datei will ich den Beginn in eine neue Datei schreiben. Die neue Datei soll nur ganze Zeilen der Ursprungsdatei enthalten.<br />
Mein Codestück sieht so aus:</p>
<pre><code class="language-cpp">//Beginn der Datei schreiben
	in.clear();
	in.seekg(ios::beg);
	unsigned int pos = 0;

	getline(in, istr);

	while(!in.eof() &amp;&amp; pos &lt; offset)
	{
		pos = in.tellg();
		outbeg &lt;&lt; istr &lt;&lt; '\n';
		getline(in, istr);
	}
</code></pre>
<p>wobei in vom Typ ifstream die Eingabedatei ist, outbeg vom Typ ofstream die Ausgabedatei, und offset ist die Anzahl Bytes, die mindestens gelesen werden soll.<br />
Wenn ich die Zeile<br />
pos = in.tellg();<br />
auskommentiere, läuft das wunderbar (natürlich bekomme ich dann aber die ganze Ursprungsdatei). So wie oben allerdings ist nur die erste Zeile vollständig, von den Folgezeilen werden jeweils am Zeilenbeginn ein paar Byte verschluckt, nicht immer dieselbe Anzahl, sondern unterschiedlich ...<br />
MS's cl.exe erzeugt aus dem Code das Programm, das ich erwarte, g++ (3.4.5 mingw special) erstellt ein Programm, das den geschilderten Fehler erzeugt.<br />
Hat da jemand evtl. eine Erklärung für?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278416/ifstream-tellg-mit-g-3-4-5-erzeugt-seltsamen-fehler</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 09:24:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278416.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Dec 2010 14:01:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ifstream.tellg() mit g++ 3.4.5 erzeugt seltsamen Fehler ... on Mon, 06 Dec 2010 14:01:00 GMT]]></title><description><![CDATA[<p>Ich habe eine Textdatei mit unterschiedlich langen Zeilen. Von dieser Datei will ich den Beginn in eine neue Datei schreiben. Die neue Datei soll nur ganze Zeilen der Ursprungsdatei enthalten.<br />
Mein Codestück sieht so aus:</p>
<pre><code class="language-cpp">//Beginn der Datei schreiben
	in.clear();
	in.seekg(ios::beg);
	unsigned int pos = 0;

	getline(in, istr);

	while(!in.eof() &amp;&amp; pos &lt; offset)
	{
		pos = in.tellg();
		outbeg &lt;&lt; istr &lt;&lt; '\n';
		getline(in, istr);
	}
</code></pre>
<p>wobei in vom Typ ifstream die Eingabedatei ist, outbeg vom Typ ofstream die Ausgabedatei, und offset ist die Anzahl Bytes, die mindestens gelesen werden soll.<br />
Wenn ich die Zeile<br />
pos = in.tellg();<br />
auskommentiere, läuft das wunderbar (natürlich bekomme ich dann aber die ganze Ursprungsdatei). So wie oben allerdings ist nur die erste Zeile vollständig, von den Folgezeilen werden jeweils am Zeilenbeginn ein paar Byte verschluckt, nicht immer dieselbe Anzahl, sondern unterschiedlich ...<br />
MS's cl.exe erzeugt aus dem Code das Programm, das ich erwarte, g++ (3.4.5 mingw special) erstellt ein Programm, das den geschilderten Fehler erzeugt.<br />
Hat da jemand evtl. eine Erklärung für?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990456</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 06 Dec 2010 14:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream.tellg() mit g++ 3.4.5 erzeugt seltsamen Fehler ... on Mon, 06 Dec 2010 14:43:25 GMT]]></title><description><![CDATA[<p>Wenn es sich tatsächlich um einen g++ 3.4.5 handelt, ist der sehr alt. Da könnte es sich um einen Bug im Compiler handeln. Bei mingw gibt's doch auch schon neuere Version, warum benutzt du die nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990489</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 06 Dec 2010 14:43:25 GMT</pubDate></item><item><title><![CDATA[Reply to ifstream.tellg() mit g++ 3.4.5 erzeugt seltsamen Fehler ... on Mon, 06 Dec 2010 14:52:41 GMT]]></title><description><![CDATA[<p>Mhm, ich hab irgendwann mal 'ne Version mit 4. irgendwas ausprobiert, aber die hat mir sehr sehr große Exe-Dateien erzeugt ...<br />
Mittlerweile benutze ich eigentlich eher VC++ Express ... ich entdecke eigentlich immer mal wieder Dinge, die sich damit weniger problematisch darstellen, als mit dem g++ (allerdings meine ich jetzt meine alte Version).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990501</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 06 Dec 2010 14:52:41 GMT</pubDate></item></channel></rss>