SBUF auslesen und String auftrennen



  • Hallo liefe Programmierer Gemeinschaft

    Ich habe ein problem und drehe mich im kreis, brauche nen lösungsansatz 😕

    void Read_Data (void)  
    {
    char TempSBUF;
    
    RI=0;											
    while(!RI);											
    TempSBUF=SBUF;
    RI=0;
    
    Buffer = new char[ TempSBUF.Length() + 1 ];
    strcpy( cp, TempSBUF.c_str() );
    
    sscanf(cp"%d.%d.%d.%d.%d",funktion,zeit1,zeit2,zeit3,kontrollsumme_empfangen);
    printf("%d %d %d %d %d",funktion,zeit1,zeit2,zeit3,kontrollsumme_empfangen);
    
    }
    

    Ride sagt mir dann

    "D:\Programme\Raisonance\Ride\Bin\RC51.EXE" "D:\Microkontroller\Neu\Ride 11.2010\C File1.c" QUIET GENERATEDEPFILE OJ("D:\Microkontroller\Neu\Ride 11.2010\C File1.obj") PIN("D:\Programme\Raisonance\Ride\Inc;D:\Programme\Raisonance\Ride\Inc\51") PIN("D:\Programme\Raisonance\Ride\\inc\51\NXP") NOAM CD PR("D:\Microkontroller\Neu\Ride 11.2010\C File1.lst") FP(NOFLOAT) IP NOIS UNSIGNEDCHAR ET(CHAR) PR PL(60) PW(80) OE(1) OT("7","SPEED") RB("0") MAXERR("25") MAXWAR("25") SM MOD517(NODP8,NOAU)
    RC51 COMPILER V03.08.10.309 Evaluation (8 Kb code limited)
    Copyright (c) Raisonance S.A.S. 1987-2010. All rights reserved.
    *** ERROR C014 IN LINE 258 OF D:\Microkontroller\Neu\Ride 11.2010\C File1.c : Undefined 'new'
    *** ERROR C000 IN LINE 249 OF D:\Microkontroller\Neu\Ride 11.2010\C File1.c : Character '}' missing
    RC51 COMPILATION COMPLETE. 0 WARNING, 2 ERRORS

    Wie kann ich denn am einfachsten einen String empfangen per Serieller Verbindung der den aufbau 1.2.3.4.5.6.255 hat. mit oder ohne punkte. der Code soll dann gesplittet und in varriablen geschrieben werden. SCANF machte net was es soll... nur fehler

    Vielen Dank im vorraus



  • du verwechselst C und C++! new ist C++ und kein C.



  • Oldnitro schrieb:

    SCANF machte net was es soll... nur fehler

    Falsch.
    scanf macht genau das, was es soll und im Gegensatz zu dir keine Fehler.
    Was soll "ohne Punkte" bedeuten? Welche Trennzeichen vorliegen, solltest du schon genau wissen bevor du einen scanf-Formatstring dafür bastelst.
    Dein

    sscanf(cp"%d.%d.%d.%d.%d",funktion,zeit1,zeit2,zeit3,kontrollsumme_empfangen);
    

    ist uncompilierbar. Mindestens solltest du Adressen angeben:

    sscanf(cp,"%d.%d.%d.%d.%d",&funktion,&zeit1,&zeit2,&zeit3,&kontrollsumme_empfangen);
    

    Hast du überhaupt jemals in die Spezifikation von scanf geschaut oder zumindest in ein funktionierendes Beispiel? Natürlich nicht.


Anmelden zum Antworten