Ergebnis 1 bis 9 von 9

Thema: [C++] Argumente parsen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Umwandlung scheitert

    Okay. Allerdings werden die Werte nicht richtig umgewandelt!
    Ich krieg sie nicht zum richtigen Integer. Wenn ich nicht caste, kann ich nicht kompiilieren, "Ungültige Umwandlung von char* in short unsigned integer".
    Was ist zu tun?

    Code:
      //parse args
      int c;
        while ((c = getopt (argc, argv, "f:m::a::x::")) != -1)
        switch (c) {
          case 'f':
    	digitRepeat = optarg;
    std::cout << "f" << optarg << "-" << digitRepeat << std::endl;
    	break;
          case 'm':
    	digitMiddle = (int) optarg;
    std::cout << "m" << digitMiddle << std::hehe:ndl;
    	break;
          case 'x':
    	maxChecks = (int) optarg;
    std::cout << "x" << maxChecks << std::hehe:ndl;
    	break;
          case 'a':
    	abortOnSuccess = false;
    	break;
          case '?':
    	if (optopt == 'c')
    	  fprintf (stderr, "Option -%c requires an argument.\n", optopt);
    	else if (isprint (optopt))
    	  fprintf (stderr, "Unknown option `-%c'.\n", optopt);
    	else
    	  fprintf (stderr,
    		  "Unknown option character `\\x%x'.\n",
    		  optopt);
    	return 1;
    //       default:
    	//
          }
        //end of parse args
    Edit:
    Hier sind die Variablendefinitionen:
    Code:
      unsigned char		digitMiddle = '2';
      unsigned char		digitFill = '1';
    Mit atoi kann ich nicht in Char umwandeln.

    Geändert von Bluescreen (07.02.2010 um 20:55 Uhr) Grund: Neue Hinweise

  2. #2
    Char* in eine Zahl:
    strtol + schranken checken. Siehe limits.h

    atoi und co sind Boese, und sollten nicht verwendet werden.



    In Cpp solltest du eher String nehmen, anstatt c-strings. Da ist + fuer int und co ueberladen, und du kannst einfach addieren.

    Fuer char* selber gibt es printf und Freunde.

  3. #3
    Zitat Zitat von Mog Beitrag anzeigen
    Char* in eine Zahl:
    strtol + schranken checken. Siehe limits.h
    Okay, ich verwende jetzt auch einen short int.

    Zitat Zitat
    atoi und co sind Boese, und sollten nicht verwendet werden.
    Okay... Weil unzuverlässig?

    Zitat Zitat
    In Cpp solltest du eher String nehmen, anstatt c-strings.
    Okay, den Unterschied erkenne ich an was?

    Zitat Zitat
    Da ist + fuer int und co ueberladen, und du kannst einfach addieren.
    Mhmm... Kannst du das nochmal anders ausdrücken für mich?

    Geändert von Bluescreen (07.02.2010 um 22:23 Uhr)

  4. #4
    Zitat Zitat von Bluescreen Beitrag anzeigen
    Okay, ich verwende jetzt auch einen short int.

    Okay... Weil unzuverlässig?

    Okay, den Unterschied erkenne ich an was?

    Mhmm... Kannst du das nochmal anders ausdrücken für mich?

    Bitte versteh' mich jetzt nicht falsch, allerdings ist es eher anzuraten erst eine Sprache grundlegend aus Manuals zu lernen, als /alles/ einzeln zu erfragen.

    Schau dir mal an was man mit Cpp so machen kann, und lerne die Datentypen kennen.

    Danach koennen wir gerne weiter reden. Es macht aber keinen Sinn, wenn du wirklich alles den Anderen aus der Nase ziehen musst. Wie es scheint, ist es naemlich nicht nur das cmd-parsen, was dir Probleme bereitet.

  5. #5
    Hey, ich will mich ja morgen nicht C++ Entwickler nennen.
    Ich will nur die geballte Kraft der Rechenleistung eines Computers für diese Aufgabe nutzen. Der Rest des Programms ist kein Problem, scho ferdig. Nur das Argumente parsen wär g*** gewesen.

    Es ist nur ein Ausflug (zu C++).

    Geändert von Bluescreen (09.02.2010 um 20:56 Uhr) Grund: Verdeutlichung

Stichworte

Berechtigungen

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