Zahlenzauber: 8 -> char * array = 12 !!!
-
Hi, ich mal wieder
...dank Eurer Hilfe klappt jetzt die Umrechnung von einer Dezimalzahl in eine DCF77- Zahl.
Bloss die Ausgabe haut irgendwie nicht hin.Ich vereinbare doch mit
char * dcf77zahl1 = new char[8];
einen Zeiger auf ein Array aus chars, mit Grösse 8 (7 Elemente und die '\0').
Ausgegeben wird aber immer etwas in der Art:
0101010 (bis hier hin so gewollt und sehr schön)
!!PLUS!!
(nicht gewollt und überhaupt nicht schön) " =²²²² " ö.ä. ...Woher kommt dieser Anhang? Was hab ich übersehen?
Oder ist mein char * Array falsch initialisiert?char * DCF77minuten(char * dcf77zahl1,char * dcf77zahl2,int z1) { short bitpos=0, j=0; int values[]={40,20,10,8,4,2,1}; while(j<7) { if((z1-values[j])<0) { dcf77zahl1[bitpos++]='0'; } else { dcf77zahl1[bitpos++]='1'; z1-=values[j]; } j++; } return dcf77zahl1; } int main() { char * dcf77zahl1 = new char[8]; char * dcf77zahl2 = new char[8]; int z1 ; cout<<endl; cout<<"zahl eingeben: "; cin>>z1; cout<<DCF77minuten(dcf77zahl1,dcf77zahl2,z1)<<endl; cout<<endl; getch(); delete[] dcf77zahl1, dcf77zahl2; return 0; }
Stew
-
Hallo,
Auweia, dass sieht ja aus wie mein hingewurschtelter code.
Guck dir mal den letzten Beitrag im entsprechendn Thread an, da ist ne schönere Lösung.
-
Weil du vielleicht die '\0' hinten dran vergessen hast.
-
...k, weiss was Du meinst, aber leider immer noch nich wie die Ausgabe zustande kommt.
Stew
-
@braunstein: Wo denn bitte?
Stew
-
...an der Schleife liegts doch auch nich, oder?
-
dcf77zahl1[7] = '\0'
-
Hallo,
Am ende deiner Funktion vor dem return:
dcf77zahl1[7]='\0';
Guck dir trotzdem den anderen code im alten Thread an.
-
...schon gemacht und ausprobiert. Blicke (mit viel Nachgucken)auch durch, aber das "ist nicht von mir" ...niemals!!!
Gut zum Lernen und "Wachsen" aber bei meinem (bisherigen) Codingstyle
passt das einfach nich in mein Programm, wenn Du verstehst...Danke vielmals und nich "böse sein" aber da bin ich noch nich.
Stew
EDIT: Hoffe, dass ich damit jetz nich ne hochphilosophische Diskussion anstosse...