我正在编写一个程序,它需要读取文本文件并检查文本文件的第一行是否有 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)
{}