Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Parameter von char zu int konvertieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.01.2005
    Ort
    Nettetal
    Beiträge
    72

    Parameter von char zu int konvertieren

    Ich versuche grade zwei integer Werte von der Konsole zu holen, die vom typ char sind und nach int zu konvertieren, um damit zu rechnen.Allerdings kommen dabei extrem hohe Zahlen raus, die nicht stimmen:

    Code:
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
      unsigned int oben, unten;
      
      if(argc != 3)
      {
        printf("usage: %s untere_grenze obere_grenze\n", argv[0]);
        return 1;
      }
      
      unten = int(argv[1]);
      oben = int(argv[2]);
      
      printf("unten: %u\n",unten);
      printf("oben: %u\n",oben);
        
      return 0;
    }
    Wie mach ich das richtig?
    Geändert von Andy1988 (10-03-2005 um 12:54 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Such mal im Netz nach ASCII-Tabelle.
    Vielleicht fällt dir dann auf, warum du zu größe Zahlen bekommst.

    Tipp:
    Die Integer Zahlen weichen alle um die gleiche Differenz von der oberen Zahl ab (wenn die eingegeben Zahl einstellig ist).

    Wenn du mehrstellige Zahlen verwendest such mal nach einer Funktion atoi() (ASCII to Integer).
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    argv[x] enthält einen Zeiger, kein einzelnes Zeichen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.01.2005
    Ort
    Nettetal
    Beiträge
    72
    Mit atoi() hats geklappt!
    Danke!

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    atoi ist aber eher unzuverlässig, weil es Fehler nur durch 0 als Rückgabewert meldet. Wenn die 0 also nicht als gültiges Resultat ausgeschlossen werden kann, ist es besser strtol zu verwenden.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •