Die überprüfung, ob argv[i] ist ein Gültiger integer, übergeben von Argumenten in main

Ich versuche, um sicherzustellen, dass alle übergebenen Argumente zu main gültig sind Ganzzahlen, und wenn nicht, werde ich drucken ein Fehler. Zum Beispiel, wenn ich eine ausführbare Datei mit dem Namen total, ich würde geben Sie total 1 2 3 4.
Will ich drucken eine Fehlermeldung, falls ein Ungültiger integer, so dass, wenn ich geben Sie total 1 2 3zy es wird eine Fehlermeldung ausgegeben. Mein code ist wie folgt.

#include <iostream>
#include<stdlib.h>
using namespace std;

bool legal_int(char *str);

int main(int argc, char *argv[])
{
 //int total = 0;
 for(int i = 1; i < argc; i++)
 {
  if( (legal_int(argv[i]) == true) )
  {
   cout << "Good to go" << endl;
  }
  else
  {
   cerr << "Error: illegal integer." << endl;
   return 1;
  }
 }

  //int value = atoi(argv[i]);
  //cout << value << endl;
}

bool legal_int(char *str)
{
 while(str != 0) //need to
 if( (isdigit(str)) )//do something here
 {
  return true;
 }
 else
 {
  return false;
 }
}

Was ich wissen muss ist wie kann ich den index durch alle Zeichen in der Zeichenfolge, und stellen Sie sicher, Sie sind Ziffern mit der legal_int Funktion?

InformationsquelleAutor user1940516 | 2013-10-15
Schreibe einen Kommentar