none
C Programm wo liegt mein Fehler? RRS feed

  • Frage

  • Ich lerne grade etwas C.

    Und bin grad bei Funktionen nun habe ich allerdings ein Problem bei dem ich net weiter komme :(

    Das Programm soll zwei integer Werte ausgeben und einen Text ("Text123") (char) ausgeben.

    Bin grade drauf gekommen das ich den char ja angeben muss wie viel zeichen ich ihn übergeben will. Doch nun habe ich ein das Problem:

    Error C2665: "PrintNumber": Durch keine der 3 Überladungen konnten alle Argumententtypen konvertiert werden.

    Quelltext:

    #include "stdafx.h"
    #include <stdio.h>
    
    //Funktionsprototypen
    void PrintNumber( int Number );
    void PrintNumber( double Number );
    void PrintNumber( char Number[10] );
    
    //Hauptfuntkion der Anwendung
    void main()
    {
        PrintNumber(66);
        PrintNumber(19.990000);
    
        PrintNumber("Text123");
    
    
    
        getchar();
    }
    //Gibt die übergebene Nummer auf dem Bildschirm aus
    void PrintNumber( int Number )
    {
        printf( "Ein Int: %d", Number );
        printf( "\n\n" );
    }
    //Gibt die übergebene Nummer auf dem Bildschirm aus
    void PrintNumber( char Number[10] )
    {
        printf( "Ein long: %d", Number[10]);
    }
    //Gibt die übergebene Nummer auf dem Bildschirm aus
    void PrintNumber( double Number )
    {
        printf( "Ein double: %f", Number);
    }
    

    Danke für eure Hilfe!

    Dienstag, 16. Oktober 2012 07:50

Antworten

  • Wenn number ein char[] ist, dann solltest Du %s als Formtierung verwenden.

    Zudem solltest du "const char* Number" anstatt charNumber[10]. Oder "const char Number[]".

    PS: Machen wir jetzt hier Deine Hausaufgaben? ;)


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    • Als Antwort markiert icekeuter Donnerstag, 18. Oktober 2012 14:28
    Dienstag, 16. Oktober 2012 08:22
    Moderator

Alle Antworten

  • Wenn number ein char[] ist, dann solltest Du %s als Formtierung verwenden.

    Zudem solltest du "const char* Number" anstatt charNumber[10]. Oder "const char Number[]".

    PS: Machen wir jetzt hier Deine Hausaufgaben? ;)


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    • Als Antwort markiert icekeuter Donnerstag, 18. Oktober 2012 14:28
    Dienstag, 16. Oktober 2012 08:22
    Moderator
  • nein macht ihr nicht :)

    Ich bin fertig mit der schule und lerne in der Ausbildung momentan C :)

    Und wen ich fragen habe frage ich entweder meine Ausbilder oder euch :)

    Danke für die Antwort.

    PS: In der schule habe ich keine Programmiersprache oder ähnliches gelernt :(

    Dienstag, 16. Oktober 2012 08:25
  • Hab ihn jetzt so geändert.

    Nur ist mir ein Fehler aufgefallen! Wenn ich char angebe das er zum Beispiel 3 Zeichen

    übertragen soll überträgt er trodtzdem alle.

    Wo ist de Fehler hier bei?

    #include "stdafx.h" #include <stdio.h> //Funktionsprototypen void PrintNumber( int Number ); void PrintNumber( double Number ); void PrintNumber (const char Number[] ); //Hauptfuntkion der Anwendung void main() { PrintNumber(66); PrintNumber(19.990000); PrintNumber("Text123456789"); getchar(); } //Gibt die übergebene Nummer auf dem Bildschirm aus void PrintNumber( int Number ) { printf( "Ein Int: %d", Number ); printf( "\n\n" ); } //Gibt die übergebene Nummer auf dem Bildschirm aus void PrintNumber( const char Number[] ) { printf( "\n\nEin char: %s", Number ); } //Gibt die übergebene Nummer auf dem Bildschirm aus void PrintNumber( double Number ) { printf( "Ein double: %f", Number); }


    Dienstag, 16. Oktober 2012 08:33
  • Wo glabst Du denn, dass Du die Ausgabe begrenzt? Ich sehe nichts in Deinem Code, dass dies tun würde.

    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    Dienstag, 16. Oktober 2012 11:43
    Moderator