Como ler a partir do arquivo de entrada (arquivo de texto) e validar a entrada como um inteiro válido?
Estou escrevendo um programa que precisa ler um arquivo de texto e verificar a primeira linha do arquivo de texto para um número entre 0 e 10. Eu criei algumas soluções, mas ainda há um problema:
Como eu li o arquivo:
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);
primeiro eu usei o atoi:
const int filenum = atoi(tmp.c_str());
if(filenum<1 || filenum>10){
cout<<"number of files is incorrect"<<endl;
//exit(1);
}
Se a primeira linha for um caractere, mude para zero. Mas quero chamar uma exceção e encerrar o programa.
Então eu useiisdigit
mas minha entrada é uma string e não funciona com string. Finalmente eu usei cada caractere em string mas ainda não funciona.
stringstream ss(tmp);
int i;
ss>>i;
if(isdigit(tmp[0])||isdigit(tmp[1])||tmp.length()<3)
{}