<?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[Textdateien Lesen&#x2F;schreiben]]></title><description><![CDATA[<p>Guten Tag,<br />
ich bin gerade dabei mir C++ selbst mithilfe eines Buches beizubringen.<br />
Als kleine übung versuche ich gerade ein Programm zu schreiben das eine art Protokollaufgabe übernehmen soll. Nun bin ich auf ein Problem gestoßen.<br />
Also mein Programm erstellt eine Textdatei mit einer art tabelle darin.<br />
danach frägt es in welcher zeile man etwas einfügen will.<br />
nun das Problem. Gibt es eine möglichkeit in der datei zu einem bestimmten punkt oder in eine bestimmte zeile zu springen dort etwas einzufügen und das ganze zu speichern?<br />
Bis jetzt kam ich nur auf die idee bis zu der zeile auszulesen, das ganze in einer anderen datei zwischenzuspeichern dann dort unten etwas ranzuhängen den rest aus der ersten auslesen das ganze dan wieder zambasteln...da das dann doch etwas umständlich und ineffizient wäre suche ich nach einer besseren lösung.</p>
<p>dann noch eine andere frage.<br />
In meinem lernbuch wird das einlesen und schreiben in dateien immer einzeln gemacht.</p>
<p>dazu wird immer jeweils mit ifstream und ofstream ein objekt erzeugt.<br />
aber wenn man die datei öffnet kann man ja als modus mit ios_base::app ios_base::out ios_base::in auch lesen schreiben und halt anhängen aber wie geht das genau denn wenn ich die datei öffne muss ich das ja dann immer mit dem jeweiligen ifstream oder ofstream objekt öffnen. kann mir jemand erklären wie ich die datei öffne damit ich beides machen kann ohne zwei objekte zu haben.</p>
<p>bitte nicht zu kompliziert erklären ich bin noch kein profi <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Liebe Grüße Sc0rpe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301834/textdateien-lesen-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 17:29:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301834.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Apr 2012 16:36:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Wed, 04 Apr 2012 16:36:19 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
ich bin gerade dabei mir C++ selbst mithilfe eines Buches beizubringen.<br />
Als kleine übung versuche ich gerade ein Programm zu schreiben das eine art Protokollaufgabe übernehmen soll. Nun bin ich auf ein Problem gestoßen.<br />
Also mein Programm erstellt eine Textdatei mit einer art tabelle darin.<br />
danach frägt es in welcher zeile man etwas einfügen will.<br />
nun das Problem. Gibt es eine möglichkeit in der datei zu einem bestimmten punkt oder in eine bestimmte zeile zu springen dort etwas einzufügen und das ganze zu speichern?<br />
Bis jetzt kam ich nur auf die idee bis zu der zeile auszulesen, das ganze in einer anderen datei zwischenzuspeichern dann dort unten etwas ranzuhängen den rest aus der ersten auslesen das ganze dan wieder zambasteln...da das dann doch etwas umständlich und ineffizient wäre suche ich nach einer besseren lösung.</p>
<p>dann noch eine andere frage.<br />
In meinem lernbuch wird das einlesen und schreiben in dateien immer einzeln gemacht.</p>
<p>dazu wird immer jeweils mit ifstream und ofstream ein objekt erzeugt.<br />
aber wenn man die datei öffnet kann man ja als modus mit ios_base::app ios_base::out ios_base::in auch lesen schreiben und halt anhängen aber wie geht das genau denn wenn ich die datei öffne muss ich das ja dann immer mit dem jeweiligen ifstream oder ofstream objekt öffnen. kann mir jemand erklären wie ich die datei öffne damit ich beides machen kann ohne zwei objekte zu haben.</p>
<p>bitte nicht zu kompliziert erklären ich bin noch kein profi <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Liebe Grüße Sc0rpe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198766</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Wed, 04 Apr 2012 16:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Wed, 04 Apr 2012 17:08:35 GMT]]></title><description><![CDATA[<p>So, wie ich die Frage verstehe, hilft dir das hier:<br />
<a href="http://www.cplusplus.com/reference/iostream/ostream/seekp/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ostream/seekp/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198783</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Wed, 04 Apr 2012 17:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Thu, 05 Apr 2012 09:59:57 GMT]]></title><description><![CDATA[<p>Sc0rpe schrieb:</p>
<blockquote>
<p>dann noch eine andere frage.<br />
In meinem lernbuch wird das einlesen und schreiben in dateien immer einzeln gemacht.</p>
<p>dazu wird immer jeweils mit ifstream und ofstream ein objekt erzeugt.<br />
aber wenn man die datei öffnet kann man ja als modus mit ios_base::app ios_base::out ios_base::in auch lesen schreiben und halt anhängen aber wie geht das genau denn wenn ich die datei öffne muss ich das ja dann immer mit dem jeweiligen ifstream oder ofstream objekt öffnen. kann mir jemand erklären wie ich die datei öffne damit ich beides machen kann ohne zwei objekte zu haben.</p>
</blockquote>
<p>Indem du ein fstreamobjekt erzeugst</p>
<pre><code class="language-cpp">std::fstream f;
f.open(&quot;test.dat&quot;,ios::out); //zum schreiben öffnen
f&lt;&lt;&quot;labern&quot;;
f.close();
std::string inhalt;
f.open(&quot;test.dat&quot;,ios::in); //zum lesen öffnen
f&gt;&gt;inhalt;
f.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2198961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198961</guid><dc:creator><![CDATA[stalker]]></dc:creator><pubDate>Thu, 05 Apr 2012 09:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Thu, 05 Apr 2012 12:19:58 GMT]]></title><description><![CDATA[<p>Wurstinator schrieb:</p>
<blockquote>
<p>So, wie ich die Frage verstehe, hilft dir das hier:<br />
<a href="http://www.cplusplus.com/reference/iostream/ostream/seekp/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ostream/seekp/</a></p>
</blockquote>
<p>Ja das ist so etwas...nur nicht das richtige. da ich in eine bestimmte zeile muss, mit dieser funktion jedoch wissen muss wie viele zeichen ich vor oder zurück muss..<br />
Ich suche eine möglichkeit nach einer bestimmten zeile etwas einzufügen, so dass der rest der alten datei noch genauso wie vorher ist. Gibt es denn da keine möglichkeit ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199017</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Thu, 05 Apr 2012 12:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Thu, 05 Apr 2012 12:20:47 GMT]]></title><description><![CDATA[<p>stalker schrieb:</p>
<blockquote>
<p>Indem du ein fstreamobjekt erzeugst</p>
<pre><code class="language-cpp">std::fstream f;
f.open(&quot;test.dat&quot;,ios::out); //zum schreiben öffnen
f&lt;&lt;&quot;labern&quot;;
f.close();
std::string inhalt;
f.open(&quot;test.dat&quot;,ios::in); //zum lesen öffnen
f&gt;&gt;inhalt;
f.close();
</code></pre>
</blockquote>
<p>vielen dank, damit wär diese frage schon mal geklärt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199018</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Thu, 05 Apr 2012 12:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Thu, 05 Apr 2012 15:00:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void eintragen()
{	string monat;
	struct eingabe
	{
		string datum;
		string von;
		string bis;
		string pause;
	}einfuegen;

        cout &lt;&lt; &quot;In welchem Monat möchten Sie etwas eintragen?&quot;&lt;&lt;endl;
	cout &lt;&lt; &quot;Monat--&gt; &quot;;
	cin	&gt;&gt;monat;
	monat=&quot;c:/Protokoll/&quot;+monat+&quot;.txt&quot;;
	cout &lt;&lt;endl&lt;&lt;endl;

	fstream datei;

	datei.open(monat.c_str(), ios_base::in | ios_base::out | ios_base::app);

	int i=1;
	while(!datei.eof())
	{
		datei.getline(eingelesen,100);
		cout&lt;&lt;&quot;Z&quot;&lt;&lt;i&lt;&lt;&quot;|&quot;&lt;&lt;eingelesen&lt;&lt;endl;
		++i;
	}
	datei.close();
	int ZN;
	cout&lt;&lt;endl&lt;&lt;&quot;In welcher Zeile möchten sie etwas einfügen?&quot;&lt;&lt;endl;
	cin &gt;&gt;ZN; 
	cout&lt;&lt;&quot;Geben Sie das Datum ein: &quot;; 
	cin&gt;&gt;einfuegen.datum;
	cout&lt;&lt;endl&lt;&lt;&quot;Geben Sie den Zeitpunkt des Beginns der Arbeit ein: &quot;;
	cin&gt;&gt;einfuegen.von;
	cout&lt;&lt;endl&lt;&lt;&quot;Geben Sie den Zeitpunkt des Endes der Arbeit ein: &quot;;
	cin &gt;&gt;einfuegen.bis;
	cout&lt;&lt;endl&lt;&lt;&quot;Geben Sie den Zeitpunkt der Pause ein: &quot;;
	cin&gt;&gt;einfuegen.pause;

	datei.open(monat.c_str(),ios_base::out |ios_base::app);

	datei&lt;&lt;einfuegen.von;
	datei.close();

cin.get();
cin.get();
}
</code></pre>
<p>So, also nachdem ich jetzt weiter stunden an einem anderen Problem saß, dachte ich frag ich hier nochmal nach.<br />
Also ich habe gemerkt das es das was ich einlesen lasse nicht in der datei speichert wenn ich diese zuvor schonmal geöffnet habe.<br />
also wenn ich das auslesen vorher aus dem quellcode rauskommentiere wird es unten an die datei gehängt. ansonsten nicht? warum ist das so ?<br />
kann man eine datei nur einmal öffnen oder wie muss ich das verstehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199106</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Thu, 05 Apr 2012 15:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Sat, 07 Apr 2012 08:34:15 GMT]]></title><description><![CDATA[<p>ich glaub euch nicht das ihr mir da nicht helfen könnt <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/2199522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199522</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Sat, 07 Apr 2012 08:34:15 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Sat, 07 Apr 2012 09:53:18 GMT]]></title><description><![CDATA[<p>Da hast du gerade einen Spezialfall der Streaming-Klassen erwischt.</p>
<p>Durch das 2. Öffnen (mit derselben Streaming-Instanz) werden die Fehlerflags (z.B. EOF) nicht zurückgesetzt, so daß bspw. dein Einfügen dann keine Wirkung zeigt.<br />
Lösung wäre entweder ein</p>
<pre><code class="language-cpp">datei.close();
datei.clear(); // alle Flags löschen
</code></pre>
<p>Besser wäre jedoch du teilst deine bisherige Funktion in mehrere kleinere auf (mit jeweils einer eigenen Streaming-Instanz)!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199544</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 07 Apr 2012 09:53:18 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Sat, 07 Apr 2012 10:57:16 GMT]]></title><description><![CDATA[<p>Hast du den Quelltext bei dir schon getestet?</p>
<p>Was passiert, wenn noch keine Datei mit dem gewünschten Namen existiert?</p>
<p>Dann wie Th69 schon schrieb =&gt; kleinere Funktionen.</p>
<p>Brauchst du die Zeilen 48 + 49 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> schadet nicht - ist für mich lästig <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>Eventuell in deinen Unterlagen nachsehen ob du da noch eine weitere</p>
<pre><code class="language-cpp">getline
</code></pre>
<p>Variante findest?</p>
<p>Du weisst das du an die Datei nur anhängst? Einfügen, da wirst du mehr Quelltext schreiben müssen.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199560</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sat, 07 Apr 2012 10:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to Textdateien Lesen&#x2F;schreiben on Sat, 07 Apr 2012 12:40:06 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>Hast du den Quelltext bei dir schon getestet?</p>
<p>Was passiert, wenn noch keine Datei mit dem gewünschten Namen existiert?</p>
<p>Dann wie Th69 schon schrieb =&gt; kleinere Funktionen.</p>
<p>Brauchst du die Zeilen 48 + 49 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> schadet nicht - ist für mich lästig <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>Eventuell in deinen Unterlagen nachsehen ob du da noch eine weitere</p>
<pre><code class="language-cpp">getline
</code></pre>
<p>Variante findest?</p>
<p>Du weisst das du an die Datei nur anhängst? Einfügen, da wirst du mehr Quelltext schreiben müssen.</p>
<p>MfG f.-th.</p>
</blockquote>
<p>also die zeilen 48 und 49 benötige ich damit das programm and er stelle anhält. wenn ich da nur einmal cin.get(); stehen habe bleibt das program komischer weise nicht stehen sondern geht einfach weiter...wenn ich es allerdings so wie da doppelt habe muss man einmal enter drücken damit es weiter geht...mein compiler nimmt das sonst nciht war irgendwie...</p>
<p>zu dem problem...da ich keine ahnung habe habe ich es jetzt so umgeschrieben das man immer nur eine zeile unten anhängt... mit dem code von th69 habe ich das auch geschaft,dass es funktioneirt....allerdings wäre mir das einfügen lieber, jedoch habe ich keine ahnung bin ja auch noch anfänger und programmiere erst seit vlt 14 tagen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /><br />
gibt es denn eine möglichkeit mit dem einfügen ?<br />
danke erstmal an die die mir bereits geholfen haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2199595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2199595</guid><dc:creator><![CDATA[Sc0rpe]]></dc:creator><pubDate>Sat, 07 Apr 2012 12:40:06 GMT</pubDate></item></channel></rss>