Как прочитать из входного файла (текстовый файл) и проверить правильность ввода как целое число?

Я пишу программу, которая должна прочитать текстовый файл и проверить первую строку текстового файла на число от 0 до 10. Я нашел несколько решений, но проблема все еще остается:

Как я читаю файл:

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);

Сначала я использовал Atoi:

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

Если первая строка является символом, измените его на ноль. Но я хочу вызвать исключение и завершить программу.

Тогда я использовалisdigit но моя запись является строкой, и она не работает со строкой. Наконец, я использовал каждый символ в строке, но все еще не работает.

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

Ответы на вопрос(2)

Ваш ответ на вопрос