Program läuft jetzt
Habe nun noch ein Problem.
Denke es liegt wieder an der Art der Variabel Deklaration.
Der Code soll einen String 123456 in einen Integer wandeln, und dann wieder zurück in einen String.
Funktioniert soweit auch alles, aber bei der Ausgabe habe ich ein Problem.
Schaut so aus :
http://www.abload.de/image.php?img=unbenannt4h6m.jpg
Die Erste Zeile wo der String in TEXT gewandelt wird stimmt.
Und das Ergebnis der zweiten Zeile bei der Rückwandlung auch, aber er schreibt mir in der zweiten Zeile statt dem Int Wert der Variable "zahl" nur eine 0 hin.
Hier ist der Code :
Code:
#include <stdio.h>
unsigned int zahl;
unsigned char t[6];
unsigned char zahl_als_text[7] = {'1','2','3','4','5','6','\0'};
int TextInZahlUmwandeln()
{
unsigned int i;
i=0;
zahl=0;
for (i=0;i<6;i++)
{
zahl = zahl*10;
zahl = (zahl + zahl_als_text[i]-0x30);
}
return zahl;
}
void ZahlInTextUmwandeln()
{
unsigned int h;
int i;
unsigned int anzahl_stellen;
zahl = zahl;
anzahl_stellen=6;
t[6] = 0;
for (i=anzahl_stellen-1; i>=0; i--)
{
h = zahl % 10;
t[i] = h+'0';
zahl = ( zahl - h )/10;
}
}
int main()
{
TextInZahlUmwandeln();
printf("TEXT %s ergibt umgewandelt in eine Zahl %i\n",zahl_als_text, zahl);
ZahlInTextUmwandeln();
printf("%i umgewandelt in einen TEXT ergibt: %s\n", zahl,t);
return 0;
}
Ich blicke bei den Funktionen nicht so richtig durch, deshalb hab ich die Variablen der Funktionen global definiert ... steckt da der Fehler dahinter ?