Wie lese ich aus einer Eingabedatei (Textdatei) und überprüfe die Eingabe als gültige Ganzzahl?

Ich schreibe ein Programm, das eine Textdatei lesen und die erste Zeile der Textdatei auf eine Zahl zwischen 0 und 10 überprüfen muss. Ich habe ein paar Lösungen gefunden, aber es gibt immer noch ein Problem:

Wie ich die Datei gelesen habe:

const string FileName= argv[1];
ifstream fin(argv[1]);
if(!fin.good()){
    cout<<"File does not exist ->> No File for reading";
    exit(1);
}
getline(fin,tmp);
if(fin.eof()){
    cout<<"file is empty"<<endl;
}
stringstream ss(tmp);

Zuerst habe ich atoi benutzt:

const int filenum = atoi(tmp.c_str());
    if(filenum<1 || filenum>10){
        cout<<"number of files is incorrect"<<endl;
        //exit(1);
    }

Wenn die erste Zeile ein Zeichen ist, ändern Sie es auf Null. Ich möchte jedoch eine Ausnahme aufrufen und das Programm beenden.

Dann habe ich benutztisdigit aber mein eintrag ist ein string und es funktioniert nicht mit string. Schließlich habe ich jedes Zeichen in einer Zeichenfolge verwendet, aber es funktioniert immer noch nicht.

   stringstream ss(tmp);
   int i;
   ss>>i;
   if(isdigit(tmp[0])||isdigit(tmp[1])||tmp.length()<3)
   {}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage