テキスト ファイルを読み取り、テキスト ファイルの最初の行で 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)
{}