<?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[Mysteriöse Zeichen beim Datei einlesen]]></title><description><![CDATA[<p>Hi,<br />
ich bin noch ziemlich neu bei C++.<br />
Ich wollte ein Programm schreiben, welches eine beliebige Datei einlesen kann.<br />
Das funktioniert soweit auch ganz gut, aber ich frage mich woher die zusätzlichen Zeichen kommen?<br />
Wäre super wenn mir das jemand erklären könnte.</p>
<p>Inhalt der Datei:</p>
<pre><code class="language-cpp">Blablada
bliblablup
</code></pre>
<p>Ausgabe Des Programmes:</p>
<pre><code class="language-cpp">Blablada
bliblablup=²²²²½½½½½½½½
</code></pre>
<p>Methode zum auslesen der Datei:</p>
<pre><code class="language-cpp">char * loadFile(ifstream &amp;istream)
{
	size_t size;
	char *buffer;
	streamoff curpos=istream.tellg();
	istream.seekg(0,ios::end);
	size=istream.tellg();
	istream.seekg(curpos);

	buffer=new char[size];
	istream.read(buffer,size);
	cout&lt;&lt;buffer&lt;&lt;endl;
	return buffer;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/196940/mysteriöse-zeichen-beim-datei-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 18:59:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196940.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Nov 2007 18:21:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mysteriöse Zeichen beim Datei einlesen on Sun, 04 Nov 2007 18:21:21 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich bin noch ziemlich neu bei C++.<br />
Ich wollte ein Programm schreiben, welches eine beliebige Datei einlesen kann.<br />
Das funktioniert soweit auch ganz gut, aber ich frage mich woher die zusätzlichen Zeichen kommen?<br />
Wäre super wenn mir das jemand erklären könnte.</p>
<p>Inhalt der Datei:</p>
<pre><code class="language-cpp">Blablada
bliblablup
</code></pre>
<p>Ausgabe Des Programmes:</p>
<pre><code class="language-cpp">Blablada
bliblablup=²²²²½½½½½½½½
</code></pre>
<p>Methode zum auslesen der Datei:</p>
<pre><code class="language-cpp">char * loadFile(ifstream &amp;istream)
{
	size_t size;
	char *buffer;
	streamoff curpos=istream.tellg();
	istream.seekg(0,ios::end);
	size=istream.tellg();
	istream.seekg(curpos);

	buffer=new char[size];
	istream.read(buffer,size);
	cout&lt;&lt;buffer&lt;&lt;endl;
	return buffer;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1397661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397661</guid><dc:creator><![CDATA[HiFish]]></dc:creator><pubDate>Sun, 04 Nov 2007 18:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mysteriöse Zeichen beim Datei einlesen on Sun, 04 Nov 2007 18:50:31 GMT]]></title><description><![CDATA[<p>du musst noch ein nullzeichen an den stirng hinten anhängen, sonst weiß der computer nicht, wo der string zuende ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397689</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sun, 04 Nov 2007 18:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to Mysteriöse Zeichen beim Datei einlesen on Sun, 04 Nov 2007 21:18:12 GMT]]></title><description><![CDATA[<p>Und dein Code ist so nicht ganz sinnig:</p>
<pre><code class="language-cpp">void load_file(std::ifstream&amp; in, char* dest, std::size_t max_size)
{
    const std::streampos pos_cur(in.tellg());
    in.seekg(0, std::ios::end);
    const std::streampos pos_end(in.tellg());
    in.seekg(0, std::ios::beg);
    in.read(dest, std::min&lt;std::size_&gt;(max_size, pos_end) * sizeof(char));
    in.seekg(pos_cur, std::ios::beg);
}
</code></pre>
<p>... Entweder, du lädst nur ab der Position wo der Cursor im Moment ist (dann ist size - pos_cur die richtige Größe und nicht nur size) oder du lädst die komplette Datei und gehst dann wieder an die alte Stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397778</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 04 Nov 2007 21:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Mysteriöse Zeichen beim Datei einlesen on Sun, 04 Nov 2007 23:21:04 GMT]]></title><description><![CDATA[<p>Ich würde sowieso vorschlagen, du machst dir das Leben leicht und nutzt alle Möglichkeiten von C++, inklusive Strings und Iteratoren. Dann brauchst du dir um das Abschliessen deines char-Arrays mit einer 0 auch keine Sorgen mehr zu machen <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>
<pre><code class="language-cpp">#include &lt;iterator&gt;
#include &lt;string&gt;

// ...

string loadFile(ifstream &amp;istream)
{
    istream.unsetf(ios::skipws);
    string str = string(istream_iterator&lt;char&gt;(istream), istream_iterator&lt;char&gt;());
    return str;
}

// oder noch eleganter

void loadFile(ifstream &amp;istream, string &amp;str)
{
    istream.unsetf(ios::skipws);
    str = string(istream_iterator&lt;char&gt;(istream), istream_iterator&lt;char&gt;());
}

// und falls eben doch so ein frickliges Char-Array zurückgegeben werden muss

char * loadFile(ifstream &amp;istream)
{
    istream.unsetf(ios::skipws);
    string str = string(istream_iterator&lt;char&gt;(istream), istream_iterator&lt;char&gt;());

    char *buffer = new char[str.size() + 1];
    strcpy(buffer, str.c_str());
    return buffer;
}
</code></pre>
<p>Viel Spass noch und beste Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397807</guid><dc:creator><![CDATA[KessiMC]]></dc:creator><pubDate>Sun, 04 Nov 2007 23:21:04 GMT</pubDate></item></channel></rss>