<?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[Eine ganze Textdatei in einen Datentyp packen]]></title><description><![CDATA[<p>Hallo<br />
Ich bin ein C++ Anfänger.<br />
Ich möchte eine gesamte Textdatei in ein Bezeichner reinhauen. Ich bekomms aber nur Zeilenweise hin.</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>int main(int argc, char *argv[])<br />
{<br />
ifstream file;<br />
char buchstabe;<br />
char wait;</p>
<p>file.open(&quot;C:/test.txt&quot;, ios::in);</p>
<p>if (file.good())<br />
{<br />
// Wenn die Datei geoeffnet werden konnte...</p>
<p>// An den Anfang der Datei springen<br />
file.seekg(0L, ios::beg);</p>
<p>if (! file.eof())<br />
{<br />
// Die Datei zeilenweise auslesen<br />
file.get(buchstabe);<br />
}<br />
// Ausgabe<br />
cout &lt;&lt; buchstabe;<br />
}<br />
cin.get(wait);<br />
return 0;<br />
}</p>
<p>könnt ihr mir helfen?<br />
Geht das auch in objekorientierten Bereich?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223805/eine-ganze-textdatei-in-einen-datentyp-packen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 16:51:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223805.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Oct 2008 10:01:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 10:01:59 GMT]]></title><description><![CDATA[<p>Hallo<br />
Ich bin ein C++ Anfänger.<br />
Ich möchte eine gesamte Textdatei in ein Bezeichner reinhauen. Ich bekomms aber nur Zeilenweise hin.</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>int main(int argc, char *argv[])<br />
{<br />
ifstream file;<br />
char buchstabe;<br />
char wait;</p>
<p>file.open(&quot;C:/test.txt&quot;, ios::in);</p>
<p>if (file.good())<br />
{<br />
// Wenn die Datei geoeffnet werden konnte...</p>
<p>// An den Anfang der Datei springen<br />
file.seekg(0L, ios::beg);</p>
<p>if (! file.eof())<br />
{<br />
// Die Datei zeilenweise auslesen<br />
file.get(buchstabe);<br />
}<br />
// Ausgabe<br />
cout &lt;&lt; buchstabe;<br />
}<br />
cin.get(wait);<br />
return 0;<br />
}</p>
<p>könnt ihr mir helfen?<br />
Geht das auch in objekorientierten Bereich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591349</guid><dc:creator><![CDATA[Google12]]></dc:creator><pubDate>Wed, 01 Oct 2008 10:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:17:12 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>also so ?</p>
<pre><code class="language-cpp">// read a file into memory
#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

int main () {
  int length;
  char * buffer;

  ifstream is;
  is.open (&quot;test.txt&quot;, ios::binary );

  // get length of file:
  is.seekg (0, ios::end);
  length = is.tellg();
  is.seekg (0, ios::beg);

  // allocate memory:
  buffer = new char [length];

  // read data as a block:
  is.read (buffer,length);
  is.close();

  cout.write (buffer,length);

  delete[] buffer;
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1591410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591410</guid><dc:creator><![CDATA[DataByte]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:17:12 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:21:58 GMT]]></title><description><![CDATA[<p>Hä? Du möchtest einen Bezeichner haben list aber Zeilenweise aus? Schildere dein Problem mal, Junge.<br />
Und das mit der OOP, das lohnt sich hierbei ehrlich gesagt, ist aber machbar, sprich:</p>
<pre><code class="language-cpp">class File
{
  public:
   void Loadfile(fstream FILE, char *Filnemae);
   void Savefile(fstream FILE, char *Filememory, char *New_Filememory, char *Modus);
}

 void File::Loadfile(fstream FILE, char *Filename, char *Modus)
{
 FILE.open(Filename, Modus);
};

 void File::Savefile(fstream FILE, char *Filememory, char *New_Filememory, char *Modus)
{
 FILE.seekg(Filememory, Modus);
 FILE.get(New_Filememory);
};
</code></pre>
<p>Vom Aufbau her kannste das so in der OOP machen, obwohl das Beispiel bestimmt nicht mit den richtigen Befehlen ist, da ich mich nie so richtig mit Dateioperationen beshcäftigt habe, Aufruf ist ja klar, oder?<br />
Naja, Beispiel:</p>
<pre><code class="language-cpp">//Klasse blablabla
 int main(void)
{
 File Textfile; //Objekt von Klasse
 TextFile.Loadfile(File, &quot;Test.txt&quot;, &quot;ios::in&quot;); //Methodenaufruf mit  
 Methodendeklarierung
</code></pre>
<p>So, hilft dir vielleicht, tschau...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591415</guid><dc:creator><![CDATA[Waygener]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:23:34 GMT]]></title><description><![CDATA[<blockquote>
<p>Hä? Du möchtest einen Bezeichner haben list aber Zeilenweise aus? Schildere dein Problem mal, Junge.<br />
Und das mit der OOP, das lohnt sich hierbei ehrlich gesagt, ist aber machbar, sprich:</p>
</blockquote>
<p>Sry, der Satz sollte so lauten:<br />
Hä? Du möchtest einen Bezeichner haben liest aber Zeilenweise aus? Schildere dein Problem mal, Junge. Und das mit der OOP, das lohnt sich hierbei ehrlich gesagt nicht, ist aber machbar, sprich:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591417</guid><dc:creator><![CDATA[Waygener]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:35:55 GMT]]></title><description><![CDATA[<p>wenn ich das ausprobieren möchte hängt sich im consolensystem mein System auf und im Objektorientierten kommt undefinde symbol ifstream. Ich denk mal fStream geschichte geht dort net oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591426</guid><dc:creator><![CDATA[Google12]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:37:30 GMT]]></title><description><![CDATA[<p>Ich möchte Das der Ganze text zB in<br />
char Datei<br />
ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591430</guid><dc:creator><![CDATA[Google12]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:52:51 GMT]]></title><description><![CDATA[<p>Welchen Code meinst du? Meinen oder DataBytes? Bei meinem ist doch klar das da ein paar Befehle falsch sein, musst du eben anpassen, solltest das auch nicht kopieren sondern versuchen selber zu machen...<br />
Außerdem kopierst du den Scheiss schon in einen Datentyp, nämlich mit &quot;getline()&quot;, wenn unter anderem Zahlen in dem Text enthalten sind, findet der Datentyp 'char' keine Verwendung mehr dafür, deswegen solltest du den Buffer lieber als 'string' definieren (:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591439</guid><dc:creator><![CDATA[Waygener]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:52:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 11:57:24 GMT]]></title><description><![CDATA[<p>Wir sind hier im C++ Forum von daher würde ich das so machen.</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;fstream&gt;
#include&lt;string&gt;

int main()
{
   std::ifstream datei(&quot;deinedatei.txt&quot;);
   std::string zum_fuellen;

   while(getline(datei,zum_fuellen));//nachdem die durchgelaufen ist, sollte alles aus der datei in &quot;zum_fuellen&quot; sein.

//hier kannst du dann mit dem string machen was du willst.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1591443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591443</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 01 Oct 2008 11:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 12:03:46 GMT]]></title><description><![CDATA[<p>Könnte man eigentlich auch irgendwie sowas machen: ?</p>
<pre><code class="language-cpp">...
  // string
  std::string str;

  // reverse
  str.reverse(length);

  // read data as a block:
  is.read (str.c_str(), length);
  ..
</code></pre>
<p>Also dass das nicht geht weiß ich auch aber gibts da irgendwie so ne<br />
möglichkeit direkt an den buffer von std::string ranzukommen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591449</guid><dc:creator><![CDATA[DataByte]]></dc:creator><pubDate>Wed, 01 Oct 2008 12:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 12:25:56 GMT]]></title><description><![CDATA[<p>Danke Firefighter das funzt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591466</guid><dc:creator><![CDATA[Google12]]></dc:creator><pubDate>Wed, 01 Oct 2008 12:25:56 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 12:53:22 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Wir sind hier im C++ Forum von daher würde ich das so machen.</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;fstream&gt;
#include&lt;string&gt;

int main()
{
   std::ifstream datei(&quot;deinedatei.txt&quot;);
   std::string zum_fuellen;
   
   while(getline(datei,zum_fuellen));//nachdem die durchgelaufen ist, sollte alles aus der datei in &quot;zum_fuellen&quot; sein.

//hier kannst du dann mit dem string machen was du willst.
}
</code></pre>
</blockquote>
<p>Wäre es eine optimierung wenn man erst noch die Länge des Files bestimmt<br />
und dann schon mal speicherplatz mit reverse reserviert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591480</guid><dc:creator><![CDATA[DataByte]]></dc:creator><pubDate>Wed, 01 Oct 2008 12:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 13:14:06 GMT]]></title><description><![CDATA[<p>Google12 schrieb:</p>
<blockquote>
<p>Danke Firefighter das funzt!</p>
</blockquote>
<p>.. aber nur dann, wenn die Textdatei nicht mehr als eine Zeile enthält.</p>
<p>Besser:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iomanip&gt;      // noskipws
#include &lt;iostream&gt;
#include &lt;iterator&gt;     // istream_iterator
#include &lt;string&gt;

int main() 
{ 
    using namespace std;
    ifstream datei(&quot;C:/test.txt&quot;);
    string zum_fuellen( (istream_iterator&lt; char &gt;( datei &gt;&gt; noskipws )), istream_iterator&lt; char &gt;() );
    // jetzt steht der Inhalt von 'datei' in 'zum_fuellen'
    return 0;
}
</code></pre>
<p>das 'noskipws' sorgt dafür, dass auch die Leerzeichen und Zeilenumbrüche mit gelesen werden.</p>
<p>DataByte schrieb:</p>
<blockquote>
<p>Wäre es eine optimierung wenn man erst noch die Länge des Files bestimmt<br />
und dann schon mal speicherplatz mit reverse reserviert ?</p>
</blockquote>
<p>wahrscheinlich nicht. Das Anfordern von Speicher im Rechner geht meistens schneller, als irgendein Dateizugriff.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591491</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 01 Oct 2008 13:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 14:00:54 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Google12 schrieb:</p>
<blockquote>
<p>Danke Firefighter das funzt!</p>
</blockquote>
<p>.. aber nur dann, wenn die Textdatei nicht mehr als eine Zeile enthält.</p>
<p>Besser:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iomanip&gt;      // noskipws
#include &lt;iostream&gt;
#include &lt;iterator&gt;     // istream_iterator
#include &lt;string&gt;

int main() 
{ 
    using namespace std;
    ifstream datei(&quot;C:/test.txt&quot;);
    string zum_fuellen( (istream_iterator&lt; char &gt;( datei &gt;&gt; noskipws )), istream_iterator&lt; char &gt;() );
    // jetzt steht der Inhalt von 'datei' in 'zum_fuellen'
    return 0;
}
</code></pre>
<p>das 'noskipws' sorgt dafür, dass auch die Leerzeichen und Zeilenumbrüche mit gelesen werden.</p>
</blockquote>
<p>Aber durch das while geht er doch alle Zeilen durch und speichert sie, oder ?</p>
<blockquote>
<p>DataByte schrieb:</p>
<blockquote>
<p>Wäre es eine optimierung wenn man erst noch die Länge des Files bestimmt<br />
und dann schon mal speicherplatz mit reverse reserviert ?</p>
</blockquote>
<p>wahrscheinlich nicht. Das Anfordern von Speicher im Rechner geht meistens schneller, als irgendein Dateizugriff.</p>
<p>Gruß<br />
Werner</p>
</blockquote>
<p>Ich hätte gedacht dass std::string, wenn er daten bekommt immer einen passenden<br />
Speicherbereich reservieren muss und dann alles von dem alten<br />
in den neuen umkopieren muss. Und wenn die datei sehr viele zeilen hat,<br />
Dann muss er das ziemlich oft machen. deshalb wäre es nicht doch schneller<br />
erst zu reservieren und dann zu kopieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591510</guid><dc:creator><![CDATA[DataByte]]></dc:creator><pubDate>Wed, 01 Oct 2008 14:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 14:46:28 GMT]]></title><description><![CDATA[<p>DataByte schrieb:</p>
<blockquote>
<p>Aber durch das while geht er doch alle Zeilen durch und speichert sie, oder ?</p>
</blockquote>
<p>Genau, er speichert immer die ganze Zeile in dem selben String. Hängt sie aber eben nicht an. Am Ende enthält der String also die letzte Zeile der Datei, mehr nicht.</p>
<p>DataByte schrieb:</p>
<blockquote>
<p>Ich hätte gedacht dass std::string, wenn er daten bekommt immer einen passenden<br />
Speicherbereich reservieren muss und dann alles von dem alten<br />
in den neuen umkopieren muss. Und wenn die datei sehr viele zeilen hat,<br />
Dann muss er das ziemlich oft machen. deshalb wäre es nicht doch schneller<br />
erst zu reservieren und dann zu kopieren ?</p>
</blockquote>
<p>Da Speicheroperationen aber verhältnismäßig schnell sind im Vergleich zu Dateioperationen, ists eventuell günstiger, ein paarmal den Stringinhalt durch den Speicher zu flippern als sich mit seekg &amp; Co erstmal die Länge der atei zu bestimmen. Wie weit welche Methode günstiger ist hängt ab von Dingen wie Speicherzugriffszeit, Größe der Datei, Größe des filebufs in fstream, anfängliche Größe und Vergrößerungsfaktor des internen String-Datenbereiches, Dateizugriffszeit, ...</p>
<p>Wie bei jeder Optimierung sollte der Code hier nur dann verkompliziert werden, wenn genau die Stelle einen merklichen Performancenachteil bringt, und das ist keine Sache für Schätzungen sondern für Studien mit einem Profiler...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591552</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 01 Oct 2008 14:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 15:00:24 GMT]]></title><description><![CDATA[<p>Sorry mein Fehler, natürlich muss in die while noch ein</p>
<pre><code class="language-cpp">zum_fuellen+=zum_fuellen;
</code></pre>
<p>so sollte es dann hinhauen.oder man nimmt einen vector und schmeißt sie da rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591571</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 01 Oct 2008 15:00:24 GMT</pubDate></item><item><title><![CDATA[Reply to Eine ganze Textdatei in einen Datentyp packen on Wed, 01 Oct 2008 17:36:11 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Sorry mein Fehler, natürlich muss in die while noch ein</p>
<pre><code class="language-cpp">zum_fuellen+=zum_fuellen;
</code></pre>
<p>so sollte es dann hinhauen.oder man nimmt einen vector und schmeißt sie da rein.</p>
</blockquote>
<p>Aber bitte nicht vergessen, dass <code>getline</code> das Newline abschneidet <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591650</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 01 Oct 2008 17:36:11 GMT</pubDate></item></channel></rss>