<?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[Neuling Programmieren; problem mit einem Programm]]></title><description><![CDATA[<p>Hallo,<br />
wie ihr am titel schon lesen könnt, bin ich neu beim Programmieren und habe desswegen auch gleich schon eine Frage.</p>
<p>Mir wurde folgende Aufgabe gestellt:</p>
<p>Lassen sie den Benutzer 10 Zahlen eingeben und eine weitere Prüfzahl, anhand der geprüft werden soll, ob die 10 Zahlen abgespeichtet werden sollen oder nicht (in einer Textdatei). Ist die Zahl kleiner als die Prüfzahl, so soll sie nicht abgespeichert werden.</p>
<p>Mein zu dem Programm geschriebener Code ist folgender :</p>
<pre><code>#include &lt;iostream.h&gt;

    void main()
{
    char zahl[10] ;
    char pruefzahl ;
    int i=0 ;
    FILE*Datei ;
    fopen(&quot;Zahlen_&gt;_Pruefzahl.txt&quot;,&quot;w&quot;) ;

    while(i&lt;=9)
    {
        cout &lt;&lt; &quot;Bitte geben sie die &quot;&lt;&lt; i+1&lt;&lt;&quot;. Zahl ein   &quot;;
        cin&gt;&gt;zahl[i] ;
        i++ ;
    }

    i=0 ;

    cout&lt;&lt; &quot;Bitte geben sie eine Pruefzahl ein   &quot; ;
    cin &gt;&gt; pruefzahl ;

    while(i&lt;=9)
    {
        if(pruefzahl &gt;= zahl[i])
        {
            fputs(pruefzahl,Datei) ;
        }
        i++ ;
    }
    fclose(Datei) ;

    system(&quot;PAUSE&quot;) ;

}
</code></pre>
<p>Mein Problem ist nun, das folende Fehlermeldung aufkommt:</p>
<p>28: Cannot convert 'int' to 'const char *' in function main()<br />
28: Type mismatch in parameter '__s' (wanted 'const char *', got 'int') in function main()</p>
<p>Ihr werdet warscheinlich schon sofort sehen was der Fehler ist, und es wäre schön, wenn ihr mir schnell eine Antwort geben könntet.</p>
<p>Mfg Timmyten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239672/neuling-programmieren-problem-mit-einem-programm</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:03:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239672.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Apr 2009 15:24:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neuling Programmieren; problem mit einem Programm on Sun, 26 Apr 2009 15:24:42 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wie ihr am titel schon lesen könnt, bin ich neu beim Programmieren und habe desswegen auch gleich schon eine Frage.</p>
<p>Mir wurde folgende Aufgabe gestellt:</p>
<p>Lassen sie den Benutzer 10 Zahlen eingeben und eine weitere Prüfzahl, anhand der geprüft werden soll, ob die 10 Zahlen abgespeichtet werden sollen oder nicht (in einer Textdatei). Ist die Zahl kleiner als die Prüfzahl, so soll sie nicht abgespeichert werden.</p>
<p>Mein zu dem Programm geschriebener Code ist folgender :</p>
<pre><code>#include &lt;iostream.h&gt;

    void main()
{
    char zahl[10] ;
    char pruefzahl ;
    int i=0 ;
    FILE*Datei ;
    fopen(&quot;Zahlen_&gt;_Pruefzahl.txt&quot;,&quot;w&quot;) ;

    while(i&lt;=9)
    {
        cout &lt;&lt; &quot;Bitte geben sie die &quot;&lt;&lt; i+1&lt;&lt;&quot;. Zahl ein   &quot;;
        cin&gt;&gt;zahl[i] ;
        i++ ;
    }

    i=0 ;

    cout&lt;&lt; &quot;Bitte geben sie eine Pruefzahl ein   &quot; ;
    cin &gt;&gt; pruefzahl ;

    while(i&lt;=9)
    {
        if(pruefzahl &gt;= zahl[i])
        {
            fputs(pruefzahl,Datei) ;
        }
        i++ ;
    }
    fclose(Datei) ;

    system(&quot;PAUSE&quot;) ;

}
</code></pre>
<p>Mein Problem ist nun, das folende Fehlermeldung aufkommt:</p>
<p>28: Cannot convert 'int' to 'const char *' in function main()<br />
28: Type mismatch in parameter '__s' (wanted 'const char *', got 'int') in function main()</p>
<p>Ihr werdet warscheinlich schon sofort sehen was der Fehler ist, und es wäre schön, wenn ihr mir schnell eine Antwort geben könntet.</p>
<p>Mfg Timmyten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701547</guid><dc:creator><![CDATA[Timmyten]]></dc:creator><pubDate>Sun, 26 Apr 2009 15:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to Neuling Programmieren; problem mit einem Programm on Sun, 26 Apr 2009 15:52:33 GMT]]></title><description><![CDATA[<p>Mit was oder durch was lernst du programmieren? Das ist ja schrecklich, wirf es weg, verbrenn es! Auch wenn es ein Professor ist, der hätte es nicht anders verdient!</p>
<pre><code class="language-cpp">// #include &lt;iostream.h&gt; Seit 1998 sagt der Standard, dass es &lt;iostream&gt; heisst
#include &lt;iostream&gt;

int main() // void main() war, soweit mir das bekannt ist, nie korrektes C++!
{
  // Variablen müssen nicht zu begin deklariert werden.
  // In C++ darf man das auch während der Funktion. Aber gut
  // das kann man noch unter Geschmacksache verbuchen.
  char zahl[10];
  char pruefzahl;
  int i = 0;

  // WTF? FILE? Das ist C! In C++ verwendet man IO Streams!
  // Zudem hast du nicht mal den dafür benötigten Header eingebunden: &lt;cstdio&gt;
  // Aber gut, belassen wir es halt mal dabei, ich will ja nicht alles
  // umschreiben. Höchstens eins noch: Verwende einheitliche Benennung.
  // Wenn du Variablen klein schreibst, dann schreib sie überall klein.
  FILE* Datei;
  fopen(&quot;Zahlen_&gt;_Pruefzahl.txt&quot;, &quot;w&quot;);

  while(i &lt;= 9) 
  {
    // cout befindet sich seit 1998 in Namensraum std
    std::cout &lt;&lt; &quot;Bitte geben sie die &quot;&lt;&lt; i+1 &lt;&lt; &quot;. Zahl ein   &quot;; 

    // Daselbe gilt für cin
    std::cin &gt;&gt; zahl[i];
    i++;
  }

  i = 0; 

  // std  
  std::cout &lt;&lt; &quot;Bitte geben sie eine Pruefzahl ein   &quot;; 

  // std
  std::cin &gt;&gt; pruefzahl; 

  while(i &lt;= 9)
  {
    if(pruefzahl &gt;= zahl[i]) 
    {
      // Siehe Referenz nach dem Codeteil. (1)
      // fputs(pruefzahl,Datei);
    } 

    i++;
  }

  // Im übrigen gibt es auch for-Schleifen.
  // Mal auskommentiert
  /*
  for(int i = 0; i &lt;= 9; ++i)
  {
    Dein Code...
  }
  */

  fclose(Datei);

  // Dies ist auch nicht so gut. (2)
  system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Also die zwei Punkte:<br />
(1) Das ist ja dein eigentliches Problem, neben dem, dass du kein aktuelles C++ programmierst. fputs erwartet einen Zeiger auf ein char-Array, welches mit einer 0 terminiert ist, also ein C String:<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdio/fputs/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdio/fputs/</a></p>
<p>Du musst die Zahl somit zuerst in einen String umwandeln, bevor du ihn ausgeben kannst. Eine Anleitung dazu findest du hier:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html</a></p>
<p>(2) system Aufrufe sollte man meiden. Wieso? Das kannst du hier nachlesen:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html</a></p>
<p>Aber es ist eindeutig, wirf das Buch weg, welches du aktuell hast oder den Professor und fang gleich wieder von vorne an. Seit 1998 gibt es einen C++ Standard und dein Code entspricht nicht diesem Standard. Zudem ist es noch mit C verseucht, grundsätzlich ist nur <code>cout</code> und <code>cin</code> C++ in deinem Code. Oft empfohlene C++ Bücher sind:<br />
- C++ Primer<br />
- Thinking in C++ 1 &amp; 2 (gratis als PDF verfügbar)</p>
<p>Aktuelle IDEs, welche deinen Code gar nicht mehr kompilieren würden:<br />
- Microsoft Visual Studio Express Edition 2008 (gratis von Microsoft)<br />
- Code::Blocks (OpenSource, arbeitet zum Beispiel mit dem GCC/G++ zusammen)<br />
- CodeLite (OpenSource)</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701553</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 26 Apr 2009 15:52:33 GMT</pubDate></item></channel></rss>