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 ERRORSWie 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.
Deinsscanf(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.