Klassenproblem



  • wie gesagt ich kenne den 2ten parameter nicht

    hast du mal sowas versucht ob das wenigstens geht

    long allalalong = subnetzmaske.lNrOfHosts;  // was zeigt der debugger hier an?
    


  • Dasselbe wie bei den anderen.

    Hier ist die Syntax von sprintf, wenn du den zweiten Parameter nicht kennst.

    sprintf(const char *target_string, const char *format, ...);
    


  • sprintf(ziel, "%d", zahl2);
    

    so sieht die funktion aus! ziel ist ein string und zahl2 ein int!



  • was ist den EditMessage1? ein char array? oder ein string? also ich kenne sprintf() von C! und ich vermute das sprintf() nicht mit strings umgehen kann



  • char EditMessage1[16];  // also char-Array
    


  • donzero schrieb:

    was ist den EditMessage1? ein char array? oder ein string? also ich kenne sprintf() von C! und ich vermute das sprintf() nicht mit strings umgehen kann

    sorry check ich jetzt nicht. erst sagt du

    sprintf(ziel, "%d", zahl2); // ziel ist ein string und zahl2 ein int!

    dann sagst du und ich vermute das sprintf() nicht mit strings umgehen kann

    EditMessage1 hört sich nach eine BOX an, oder?

    bist du sicher das man die box so drauf anspricht ( falls eine editbox )

    mit
    sprintf ( BOX_ID, string ); // ???

    kenne mich nicht mit borland aus.



  • Nö, ist keine EditBox. Ganz normales char-Array.
    Ich hab das jetzt einfach anders gelöst. Hab mir einfach in die Klasse drei Funktionen geschrieben die mir das zurückgeben. Aber nochmal danke an euch. 👍



  • ja ich mein char array sry das ich erst string geschrieben habe!

    char EditMessage1[16];
    	long int longlong = 10020;
    
    	sprintf(EditMessage1,"%d",longlong);
    	cout << EditMessage1 << endl;
    

    das geht bei mir ... ich denke ma das die datentypen bei dir die gleichen sein sollten!

    //Edit .. an gut wenn du es schon hast 😉



  • aha bissle gegoogelt und siehe da

    sprintf formatiert Daten zu Gesamtstring
    sprintf brauchbar zum Formatieren und
    anschließenden Ausgeben in GUI-Element

    hast du ein gui element?

    Also für die Ausgabe in einen neuen String (char-Array) kannst du sprintf verwenden. Dafür musst du aber erst mal Platz für den neuen String bereitstellen, also länge des alten String + 3 Zeichen Checksumme + '\0'

    Wenn du das hast. benutzt du sprintf wie folgt:

    char message[]="GPGLL,5057.970,N,00146.110,E,142451,A"; // alte Message
    char* newMessage; //hier soll die neue Message rein

    //schreibt die alte nachricht + '' + Checksumme in HEX (Großbuchstaben) in newMessage
    sprintf(newMessage, "%s
    %02X", message, checkSumme);

    zur Erklärung: sprintf arbeitet wie printf und schreibt die formatierte Ausgabe in einen char-Puffer. %s ist der Platzhalter für deine originale Message dann der '*' und %02X für die Checksumme als Hexwert (immer 2 Stellen und Großbuschstaben)

    aha maybe hilft dir das

    http://www.cplusplus.com/ref/cstdio/sprintf.html

    fazit:

    maybe passen das long nicht in ein char c[16] ?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_sprintf.2c_.swprintf.asp

    [quote]



  • Ein C++-Programmierer würde stringstream verwenden. 😃


Anmelden zum Antworten