<?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[int Variable gibt komische Zahl aus. (Anfänger)]]></title><description><![CDATA[<p>Moin zusammen,</p>
<p>und zwar möchte ich mir in einer kleinen Funktion unter anderem die Anzahl der Zeichen eines Textes ausgeben lassen.<br />
Die Variable counter gibt aber nicht die Zeichen aus (Sollte normal 12 sein), sondern bei &quot;int counter&quot; 2293210 und bei &quot;short int counter&quot; 15.</p>
<p>Warum kriege ich bei &quot;int&quot; und &quot;short int&quot; verschiedene Zahlen raus ?<br />
Und warum erhalte ich nicht das richtige Ergebnis ?</p>
<p>Vielen Dank für eure Hilfe</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

void write_file(string dateiname, string text);
void read_file(string dateiname);

int main(){

    write_file(&quot;test.txt&quot;,&quot;abcdefg12345&quot;);
    read_file(&quot;test.txt&quot;);

return 0;
}

void write_file(string dateiname, string text){

    ofstream output;

    output.open(dateiname.c_str(), ios_base::out);

    output &lt;&lt; text &lt;&lt; endl;

    output.close();

}

void read_file(string dateiname){

    ifstream input;

    input.open(dateiname.c_str(), ios_base::in);

    char zeichen;
    int counter;

    while(!input.eof()){

        counter++;
        input.get(zeichen);
        cout &lt;&lt; zeichen;

    }

    cout &lt;&lt; counter &lt;&lt; &quot; Zeichen&quot;;

    input.close();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/250837/int-variable-gibt-komische-zahl-aus-anfänger</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 20:54:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250837.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Sep 2009 22:02:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Thu, 24 Sep 2009 22:02:46 GMT]]></title><description><![CDATA[<p>Moin zusammen,</p>
<p>und zwar möchte ich mir in einer kleinen Funktion unter anderem die Anzahl der Zeichen eines Textes ausgeben lassen.<br />
Die Variable counter gibt aber nicht die Zeichen aus (Sollte normal 12 sein), sondern bei &quot;int counter&quot; 2293210 und bei &quot;short int counter&quot; 15.</p>
<p>Warum kriege ich bei &quot;int&quot; und &quot;short int&quot; verschiedene Zahlen raus ?<br />
Und warum erhalte ich nicht das richtige Ergebnis ?</p>
<p>Vielen Dank für eure Hilfe</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
using namespace std;

void write_file(string dateiname, string text);
void read_file(string dateiname);

int main(){

    write_file(&quot;test.txt&quot;,&quot;abcdefg12345&quot;);
    read_file(&quot;test.txt&quot;);

return 0;
}

void write_file(string dateiname, string text){

    ofstream output;

    output.open(dateiname.c_str(), ios_base::out);

    output &lt;&lt; text &lt;&lt; endl;

    output.close();

}

void read_file(string dateiname){

    ifstream input;

    input.open(dateiname.c_str(), ios_base::in);

    char zeichen;
    int counter;

    while(!input.eof()){

        counter++;
        input.get(zeichen);
        cout &lt;&lt; zeichen;

    }

    cout &lt;&lt; counter &lt;&lt; &quot; Zeichen&quot;;

    input.close();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1783846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783846</guid><dc:creator><![CDATA[SalamiDealer]]></dc:creator><pubDate>Thu, 24 Sep 2009 22:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Thu, 24 Sep 2009 22:20:24 GMT]]></title><description><![CDATA[<p>Variablen haben nicht den Wert 0, wenn du sie anlegst, sondern einen Wert der zufällig gerade im Speicher steht. Du musst deinem Zähler erst einen Anfangswert zuweisen, bevor du ihn benutzt.</p>
<p>edit: Und noch eine kleine Bemerkung:</p>
<p>Die Schleife</p>
<pre><code class="language-cpp">while(!input.eof()){
      counter++;
      input.get(zeichen);
      cout &lt;&lt; zeichen;
}
</code></pre>
<p>wird nicht das tun, was du wahrscheinlich erwartest. Denn wenn das letzte Zeichen der Datei gelesen wurde, ist noch nicht input.eof(), sondern erst, nachdem versucht wird über das Ende hinus zu lesen. Das heißt, dass das letzte get, welches versucht über das Ende zu lesen, fehlschlägt, du aber trotzdem hochzählst und ausgibst. Eine einfache Möglichkeit dies zu verhinden ist folgendes:</p>
<pre><code class="language-cpp">while(input.get(zeichen)){
      counter++;
      cout &lt;&lt; zeichen;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1783848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783848</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 24 Sep 2009 22:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Thu, 24 Sep 2009 22:30:32 GMT]]></title><description><![CDATA[<p>Ah vielen Dank SeppJ. Hast mir sehr weiter geholfen.</p>
<p>Das Variablen ohne Initialisierung nicht den Wert 0 haben, hätte ich nicht gedacht. Gut zu wissen <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>Das mit der Schleife hatte ich mir schon beinahe denken können. Danke für den Lösungsvorschlag, ich werde es in Zukunft so einsetzen.</p>
<p>Grüße,<br />
SalamiDealer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1783852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783852</guid><dc:creator><![CDATA[SalamiDealer]]></dc:creator><pubDate>Thu, 24 Sep 2009 22:30:32 GMT</pubDate></item><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Thu, 24 Sep 2009 22:38:18 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt; //hattest du vergessen
using namespace std;

void write_file(const char* dateiname, const std::string &amp;text);
void read_file(const std::string &amp;dateiname);
//google: passing by copy/value

int main()
{
  write_file(&quot;test.txt&quot;, &quot;abcdefg12345&quot;);
  read_file(&quot;test.txt&quot;);
}

void write_file(const char* dateiname, const std::string &amp;text)
{
  ofstream output(dateiname);
  output &lt;&lt; text &lt;&lt; endl;
}

void read_file(const char* dateiname)
{
  ifstream input(dateiname);

  int counter = 0;
  for(char zeichen; input.get(zeichen); ++counter)
    cout &lt;&lt; zeichen;

  cout &lt;&lt; counter &lt;&lt; &quot; Zeichen&quot;;
}
</code></pre>
<p>bb</p>
<p>PS: Wie du gesehen hast, hab ich ein wenig weggelassen - war nicht wirklich alles nötig... statt <code>int counter</code> würde ich auch <code>size_t counter</code> nehmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1783853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783853</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 24 Sep 2009 22:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Fri, 25 Sep 2009 06:04:35 GMT]]></title><description><![CDATA[<p>Hi unskilled, danke für deine Mühe.<br />
Ein paar Sachen verstehe ich in deinem Code nicht. Ich stehe noch ziemlich am Anfang <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="😃"
    /> Aber ich werde es mir mal durchgucken.</p>
<p>Lg<br />
SalamiDealer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1783883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783883</guid><dc:creator><![CDATA[SalamiDealer]]></dc:creator><pubDate>Fri, 25 Sep 2009 06:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to int Variable gibt komische Zahl aus. (Anfänger) on Fri, 25 Sep 2009 09:55:08 GMT]]></title><description><![CDATA[<p>SalamiDealer schrieb:</p>
<blockquote>
<p>Hi unskilled, danke für deine Mühe.<br />
Ein paar Sachen verstehe ich in deinem Code nicht. Ich stehe noch ziemlich am Anfang <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="😃"
    /> Aber ich werde es mir mal durchgucken.</p>
<p>Lg<br />
SalamiDealer</p>
</blockquote>
<p>Frag ruhig nach, wenn dir was unklar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784013</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 25 Sep 2009 09:55:08 GMT</pubDate></item></channel></rss>