<?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[Problem mit datei aus-einlesen]]></title><description><![CDATA[<p>Hallo Community C++</p>
<p>Ich habe zurzeit ein Problem und finde keine Lösung, von daher bitte ich euch um mir ein Hinweis zu geben.</p>
<p>Es geht hierbei um datei einlesen, auslesen und bearbeiten.</p>
<p>hier ist mal mein code</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;

using namespace std;

  int main()
  {
		// es geht darum, wenn die eingegebene zahl kleiner als das was im datei_1.txt ist, wird diese ersetzt.
		//z.B eingegebene zahl ist 50 und im datei1_txt ist 100 dann soll durch programm die 50 im datei_1.txt stehen. 

		string zahl;
		cout&lt;&lt;&quot;zahl eingeben&quot;&lt;&lt;endl;
		getline(cin,zahl);			// zahl eingeben : 50
		string text,a;
		ifstream read(&quot;datei_1.txt&quot;,ios_base::in);		// wert im datei_1 lesen und in text lagern.
		getline(read,text,'\0');		// im datei_1 befindet 100
		read.close();		// schließen

		ofstream write (&quot;datei_1.txt&quot;,ios_base::out);		// schreiben im fall
		if(text&gt;zahl || text == &quot;&quot;)		// &lt;---- Hier liegt der fehler (obwohl 100 &gt; 50.)
		{
		text.swap(zahl);
		write&lt;&lt;text&lt;&lt;endl;
		write.close();
		}
		if( text &lt; zahl)		// im fall wenn zahl größer als text, wird text nicht geändert.
		{
		write&lt;&lt;text&lt;&lt;endl;
		write.close();

	  }

	system(&quot;pause&quot;);
    return 0;
  }
</code></pre>
<p>Also durch debuggen wurde ich auch nicht schlauer...<br />
Zeile 23 wird übersprungen und komischeweise wird zeile 29 nicht übersprungen.</p>
<p>Nun lasse ich mal die pros dran <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="😃"
    /><br />
Übrigens Anfänger also bitte so erklären dass man es noch versteht ^^</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335582/problem-mit-datei-aus-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 13:33:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335582.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Nov 2015 17:57:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit datei aus-einlesen on Fri, 27 Nov 2015 17:57:41 GMT]]></title><description><![CDATA[<p>Hallo Community C++</p>
<p>Ich habe zurzeit ein Problem und finde keine Lösung, von daher bitte ich euch um mir ein Hinweis zu geben.</p>
<p>Es geht hierbei um datei einlesen, auslesen und bearbeiten.</p>
<p>hier ist mal mein code</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;

using namespace std;

  int main()
  {
		// es geht darum, wenn die eingegebene zahl kleiner als das was im datei_1.txt ist, wird diese ersetzt.
		//z.B eingegebene zahl ist 50 und im datei1_txt ist 100 dann soll durch programm die 50 im datei_1.txt stehen. 

		string zahl;
		cout&lt;&lt;&quot;zahl eingeben&quot;&lt;&lt;endl;
		getline(cin,zahl);			// zahl eingeben : 50
		string text,a;
		ifstream read(&quot;datei_1.txt&quot;,ios_base::in);		// wert im datei_1 lesen und in text lagern.
		getline(read,text,'\0');		// im datei_1 befindet 100
		read.close();		// schließen

		ofstream write (&quot;datei_1.txt&quot;,ios_base::out);		// schreiben im fall
		if(text&gt;zahl || text == &quot;&quot;)		// &lt;---- Hier liegt der fehler (obwohl 100 &gt; 50.)
		{
		text.swap(zahl);
		write&lt;&lt;text&lt;&lt;endl;
		write.close();
		}
		if( text &lt; zahl)		// im fall wenn zahl größer als text, wird text nicht geändert.
		{
		write&lt;&lt;text&lt;&lt;endl;
		write.close();

	  }

	system(&quot;pause&quot;);
    return 0;
  }
</code></pre>
<p>Also durch debuggen wurde ich auch nicht schlauer...<br />
Zeile 23 wird übersprungen und komischeweise wird zeile 29 nicht übersprungen.</p>
<p>Nun lasse ich mal die pros dran <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="😃"
    /><br />
Übrigens Anfänger also bitte so erklären dass man es noch versteht ^^</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477354</guid><dc:creator><![CDATA[yeurandom]]></dc:creator><pubDate>Fri, 27 Nov 2015 17:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit datei aus-einlesen on Fri, 27 Nov 2015 18:04:06 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/string/string/operators/" rel="nofollow">http://www.cplusplus.com/reference/string/string/operators/</a><br />
Der &gt; operator bei std::strings guckt nicht ob da eine Zahl drin ist und vergleicht beide. Du musst beide strings in eine Zahl umwandeln (z.b <a href="http://www.cplusplus.com/reference/string/stoi/" rel="nofollow">http://www.cplusplus.com/reference/string/stoi/</a>) und dann vergleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477355</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Fri, 27 Nov 2015 18:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit datei aus-einlesen on Fri, 27 Nov 2015 18:58:43 GMT]]></title><description><![CDATA[<p>vielen dank für die info.<br />
macht sinn^^</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/2477361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477361</guid><dc:creator><![CDATA[yeurandom]]></dc:creator><pubDate>Fri, 27 Nov 2015 18:58:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit datei aus-einlesen on Fri, 27 Nov 2015 20:15:26 GMT]]></title><description><![CDATA[<p>Hallo yeurandom,</p>
<p>das wichtigste, was man wohl zu Deinem Code anmerken sollte, ist, dass man zum Lesen und Schreiben nicht getline sondern sogenannte extraction und insertion operators benutzt. Was sich vielleicht etwas hochtrabend anhört ist nichts anderes als der &gt;&gt;- bzw- &lt;&lt;-Operator (siehe <a href="http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/" rel="nofollow">http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/</a> und <a href="http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/" rel="nofollow">http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/</a>).</p>
<p>Ich habe Dein Problem mal dahin gehend umgeschrieben und eine Fehlerbehandlung hinzugefügt:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;

int main()
{
    using namespace std;

    int eingegebene_zahl;
    cout &lt;&lt; &quot;Bitte Zahl eingeben&gt; &quot;;
    if( cin &gt;&gt; eingegebene_zahl )   // Hier wird eine (Integer-)Zahl vom Eingabestream gelesen
    {
        const char* datei_name = &quot;datei_1.txt&quot;;
        ifstream read(datei_name);  // ohne ios_base::in; es ist doch schon ein (I)fstream
        if( !read.is_open() )       // beim Lesen immer prüfen, ob die Datei auch vorhanden bzw. offen ist.
        {
            cerr &lt;&lt; &quot;Fehler beim Oeffnen von &quot; &lt;&lt; datei_name &lt;&lt; endl;
            return 0;   // exit
        }
        int zahl_in_datei_1;
        if( read &gt;&gt; zahl_in_datei_1 )   // auch hier wird nur eine Zahl gelesen; alles andere ist ein Fehler (s.u.)
        {
            if( eingegebene_zahl &lt; zahl_in_datei_1 ) // Zitat: &quot;es geht darum, wenn die eingegebene zahl kleiner als das was im datei_1.txt ist, wird diese ersetzt&quot;
            {
                read.close();   // nur hier ist ein 'close' notwendig; in den anderen Fällen schließt die Datei beim Verlassen des Scopes
                ofstream write(datei_name);
                write &lt;&lt; eingegebene_zahl; // genau wie beim Lesen, kann man eine Zahl auch schreiben
                if( write.fail() )
                    cerr &lt;&lt; &quot;Fehler beim Schreiben von &quot; &lt;&lt; eingegebene_zahl &lt;&lt; endl;
            }  // hier wird 'write' automatisch geschlossen, da die Variable 'write' außerhalb dieses Scopes nicht mehr definiert wird (Destrukor ~ofstream)
        }
        else
            cerr &lt;&lt; &quot;Fehler beim Lesen der Zahl aus &quot; &lt;&lt; datei_name &lt;&lt; endl;
    }
    else
        cerr &lt;&lt; &quot;Eingabe war keine Zahl&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>yeurandom schrieb:</p>
<blockquote>
<p>Übrigens Anfänger also bitte so erklären dass man es noch versteht ^^</p>
</blockquote>
<p>.. schwierig, wenn man nicht weiß, wo mann aufsetzen kann. Besser Du stellst möglichst konkrete Fragen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477371</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 27 Nov 2015 20:15:26 GMT</pubDate></item></channel></rss>