<?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[.txt File an bestimmter Stelle bearbeiten]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich bräuchte mal wieder eure Hilfe. Und zwar möchte ich<br />
einen vom Benutzer eingegebenen Zahlenwert an einer<br />
bestimmt Stelle in einer .txt File speichern.<br />
Wie geht das?</p>
<p>Ich habe schon eine Funktion zum einlesen/laden von Werten die funktioniert.</p>
<p>fopen(FilNam,&quot;r+&quot;) //oeffnet mir die Datei<br />
while ((x=fgetc(y))!=EOF) //liest File ein<br />
fscanf //&quot;scannt&quot; die Datei nach Schlagwörtern<br />
//nach diesem Schlagwort kommt die Zahl<br />
//die eingelesen wird<br />
fscanf //ließt dann den gewünschten Wert ein<br />
fclose //schließt Datei</p>
<p>Soweit paßt ja alles.</p>
<p>Aber ich möchte ja nichts laden sondern speichern.<br />
Ich wäre dann so vorgegangen das ich die Funktion einfach so lasse<br />
und nur fprintf mit fscanf vertausche. Ich hab gedacht das ich dann<br />
genau an die Stelle meinen gewünschten Wert schreiben kann. Leider<br />
funktioniert das nicht. Die .txt File wird bearbeitet aber ist dann<br />
komplett leer. Ich verstehe ja nichtmal warum das so ist.<br />
Hat da jemand ne Idee bzw. einen Lösungsvorschlag? Wäre sehr cool.</p>
<p>Danke</p>
<p>casccoin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255353/txt-file-an-bestimmter-stelle-bearbeiten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 02:19:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255353.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Nov 2009 15:54:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to .txt File an bestimmter Stelle bearbeiten on Sun, 29 Nov 2009 15:55:32 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>ich bräuchte mal wieder eure Hilfe. Und zwar möchte ich<br />
einen vom Benutzer eingegebenen Zahlenwert an einer<br />
bestimmt Stelle in einer .txt File speichern.<br />
Wie geht das?</p>
<p>Ich habe schon eine Funktion zum einlesen/laden von Werten die funktioniert.</p>
<p>fopen(FilNam,&quot;r+&quot;) //oeffnet mir die Datei<br />
while ((x=fgetc(y))!=EOF) //liest File ein<br />
fscanf //&quot;scannt&quot; die Datei nach Schlagwörtern<br />
//nach diesem Schlagwort kommt die Zahl<br />
//die eingelesen wird<br />
fscanf //ließt dann den gewünschten Wert ein<br />
fclose //schließt Datei</p>
<p>Soweit paßt ja alles.</p>
<p>Aber ich möchte ja nichts laden sondern speichern.<br />
Ich wäre dann so vorgegangen das ich die Funktion einfach so lasse<br />
und nur fprintf mit fscanf vertausche. Ich hab gedacht das ich dann<br />
genau an die Stelle meinen gewünschten Wert schreiben kann. Leider<br />
funktioniert das nicht. Die .txt File wird bearbeitet aber ist dann<br />
komplett leer. Ich verstehe ja nichtmal warum das so ist.<br />
Hat da jemand ne Idee bzw. einen Lösungsvorschlag? Wäre sehr cool.</p>
<p>Danke</p>
<p>casccoin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815025</guid><dc:creator><![CDATA[casicas13]]></dc:creator><pubDate>Sun, 29 Nov 2009 15:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to .txt File an bestimmter Stelle bearbeiten on Sun, 29 Nov 2009 17:31:11 GMT]]></title><description><![CDATA[<p>Willst du das ganze nun in C oder in C++ machen? Denn dein Code tendiert sehr stark zu C. In C++ würde ich die Datei zuerst in einem Container (z.B. std::vector, std::list, std::map, etc.) einlesen, die Daten dann innerhalb des Containers ändern und das ganze wieder in die Datei zurückschreiben. Je nachdem wie der Inhalt deiner Datei aufgebaut ist, könnte dir ja zum Beispiel folgendes schon reichen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;map&gt;

bool mapToFile(std::map&lt;std::string, int&gt;::const_iterator beg, std::map&lt;std::string, int&gt;::const_iterator end, const char delim, const std::string &amp;filename)
{
	std::ofstream file(filename.c_str());
	if(!file) {
		return false;
	}
	while(beg != end) {
		file &lt;&lt; beg-&gt;first &lt;&lt; delim &lt;&lt; beg-&gt;second &lt;&lt; &quot;\n&quot;;
		++beg;
	}
	return beg == end;
}

bool fileToMap(std::map&lt;std::string, int&gt; &amp;propMap, const char delim, const std::string &amp;filename)
{
	std::ifstream file(filename.c_str());
	if(!file) {
		return false;
	}
	for(std::string line; std::getline(file, line); ) {
		std::string::size_type pos(line.find_first_of(delim));
		if(pos != std::string::npos) {
			std::istringstream convert(line.substr(pos + 1));
			convert &gt;&gt; propMap[line.substr(0, pos)];
		}
	}
	return true;
}

int main()
{
	std::map&lt;std::string, int&gt; myProps;
	if(!fileToMap(myProps, ':', &quot;werte.txt&quot;)) {
		std::cout &lt;&lt; &quot;Fehler beim lesen der Datei.&quot; &lt;&lt; std::endl;
		return 1;
	}
	for(std::map&lt;std::string, int&gt;::const_iterator beg(myProps.begin()), end(myProps.end()); beg != end; ++beg) {
		std::cout &lt;&lt; beg-&gt;first &lt;&lt; &quot; = &quot; &lt;&lt; beg-&gt;second &lt;&lt; &quot;\n&quot;; // Die gelesenen Werte zur Überprüfung ausgeben
	}
	std::map&lt;std::string, int&gt;::iterator iter = myProps.find(&quot;wert3&quot;);
	if(iter != myProps.end()) {
		iter-&gt;second = 108; // Einen der Werte ändern
	}
	if(mapToFile(myProps.begin(), myProps.end(), ':', &quot;werte.txt&quot;)) {
		std::cout &lt;&lt; &quot;Alles roger!!&quot; &lt;&lt; std::endl;
	} else {
		std::cout &lt;&lt; &quot;Fehler beim Schreiben in die Datei.&quot; &lt;&lt; std::endl;
	}

	return 0;
}
</code></pre>
<p>Inhalt der werte.txt vor der Ausführung:</p>
<pre><code>wert1:4
wert2:8
wert3:15
wert4:16
wert5:23
wert6:42
</code></pre>
<p>Und nach der Ausführung des Programms:</p>
<pre><code>wert1:4
wert2:8
wert3:108
wert4:16
wert5:23
wert6:42
</code></pre>
<p>Wie gesagt sei dies nur ein kurzes Beispiel. Es gibt viele Möglichkeiten dies zu machen und welche für dich geeignet sein könnte, hängt halt auch vom Aufbau deiner Datei ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815062</guid><dc:creator><![CDATA[Mizar]]></dc:creator><pubDate>Sun, 29 Nov 2009 17:31:11 GMT</pubDate></item><item><title><![CDATA[Reply to .txt File an bestimmter Stelle bearbeiten on Sun, 29 Nov 2009 17:48:09 GMT]]></title><description><![CDATA[<p>danke soweit, aber das sieht mir doch ziemlich kompliziert aus.</p>
<p>Zu meiner File: Die sieht ganz genau so aus wie du das Beispiel gesetzt hast.<br />
Jedenfalls wäre das mal ne Möglichkeit. Super!</p>
<p>Jetzt will ich net unverschämt sein, aber hat jemand ne idee wie man das in C machen kann? Das sieht mir irgendwie leichter, verständlicher &amp; kürzer aus. Bzw weiß jemand wieso meine Idee nicht funktioniert?</p>
<p>Hier nochmals meine Idee:</p>
<p>fopen(FilNam,&quot;r+&quot;) //oeffnet mir die Datei<br />
while ((x=fgetc(y))!=EOF) //liest File ein<br />
fscanf //&quot;scannt&quot; die Datei nach Schlagwörtern<br />
//nach diesem Schlagwort kommt die Zahl<br />
//die eingelesen wird<br />
fprintf //schreibt dann den gewünschten Wert ein<br />
fclose //schließt Datei</p>
<p>Mfg</p>
<p>Cascoin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815070</guid><dc:creator><![CDATA[casicas13]]></dc:creator><pubDate>Sun, 29 Nov 2009 17:48:09 GMT</pubDate></item><item><title><![CDATA[Reply to .txt File an bestimmter Stelle bearbeiten on Sun, 29 Nov 2009 22:12:35 GMT]]></title><description><![CDATA[<p>ok, dann gehört diese frage wohl eher ins ansic forum</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815156</guid><dc:creator><![CDATA[casicas13]]></dc:creator><pubDate>Sun, 29 Nov 2009 22:12:35 GMT</pubDate></item></channel></rss>