030
17.01.2005, 20:10 Uhr
Diablo
|
hmpf.. den ganzen tag programmiert und nix dabei rausgekommen! gab es schon tote beim programmieren?
hier mein problem:
C++: |
#include <iostream.h> #include <windows.h> #include <stdio.h> #include <ctype.h>
/* Funktionsprototyp */ unsigned uzahl(char *s, int l);
int main() { unsigned char rcv[1] = {0}; unsigned char rcv2[1] = {0}; char zahlstring[12]={0x37,0x38}; unsigned zahl; int i;
i=0; while (i<12) { if (isdigit(zahlstring[i])) i++; else break; } cout << "Ausgangszahlen: "<<endl; for (int t=0; t<i; t++) printf ("%02x \n", zahlstring[t]); printf ("\n"); zahl = uzahl(zahlstring, i); cout << "Ergebnis: " << zahl<<endl; memset(rcv+0,zahl,1); printf ("Ergebnis in hex: %02x o.O\n", rcv[0]); char rcv1[1]; sprintf(rcv1,"%02x",zahl); cout<<rcv1<<endl; memcpy(rcv2+0,rcv1+0,2); cout<<rcv2[0]<<endl; cout<<rcv2[0]<<rcv2[1]<<endl; return 0; }
unsigned uzahl(char *s, int l) { unsigned z=0; int i; int basis=10; for (i=0; i<l; i++) { if (!isdigit(s[i])) return 0; z = basis * z + (s[i]-'0'); } return z; }
|
hier hab ich VERGEEEBLICH versucht "2bytes" in eins zu stopfen! am anfang hab ich die zwei bytes 37 38, die die zahl 78 darstellen sollen, und die zahl "78" soll später als HEX ZAHL in rcv2 stehn!
das ist ja noch hinzubekommen... aber kriminell wirds wenn ich anfangs die bytes 37 und 63 hab oder zb. 37 & 9c!! ich brauch nämlich buchstaben und nicht nur zahlen |