String in Integer umwandeln

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: String in Integer umwandeln

Beitrag von Dirty Oerti » Mo Dez 08, 2008 1:38 pm

Mir würde noch etwas einfallen^^

Man legt eine Variable alleine für Fehler dieses Programmteils an und kann dann bei Bedarf diese überprüfen, um die Ursache des Fehlers zu finden.

Code: Alles auswählen


#define NO_FAULT 0
#define NULLDIV 1
#define INT_DIV_BECOMES_SMALLER_NULL 2

int last_math_fault = 0;


void math_fault(int new_error)
{
   last_math_fault = new_error;
}

int Get_last_math_fault (void)
{
   return last_math_fault;
}

int div(int a, int b)
{
   if (b==0) {
       math_fault(NULLDIV);
       return 0;
   }
   if (b > a) {
       math_fault(INT_DIV_BECOMES_SMALLER_NULL);
       return 0;
   }
   math_fault (NO_FAULT);
   return a/b;
}


int main (void)
{
   int return_value = div(5,0);
   if (Get_last_math_fault != NO_FAULT) {
      printf("Da war was...");
      if (Get_last_math_fault == NULLDIV) {
         printf("Division durch 0!");
      }
   }
   return return_value;
}
Ich denke, das sollte das Konzept verdeutlichen :)
Natürlich kann man das auch als eine Art "Stack" betreiben :)
Oder als Queue :)
Dann können mehrere Fehler zeitlich richtig gespeichert werden.
Oder, wenn mans ganz auf die Palme treibt auch als verkettete Liste^^

MfG
Daniel

P.S: Ja, ich weiß, das Beispiel ist etwas...naja...es ist recht unnötig^^
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: String in Integer umwandeln

Beitrag von Xin » Mo Dez 08, 2008 1:58 pm

Das Konzept ist relativ üblich, siehe mysql oder die Standard-C-Lib.

Die Fehlernummer ist allerdings nur erklärendes Beiwerk: die Information, ob ein Fehler passiert ist, muss dennoch übergeben werden.
Würde man auf die Refernenz bei meiner div-Funktion verzichten, so kann man nicht unterscheiden, was gültige Rückgabe und was Fehler ist, für den man eine Fehlernummer abholen könnte.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten