我有一個函數在輸入驗證後被調用。 它會檢查分組大小的數字範圍,它們不能小於1且不大於10,我也正在驗證它用於無效字符,如字母和符號。while循環中的多個條件C++
int validateGroupSize(int groupsize[], int i)
{
while((groupsize[i] < 0 || groupsize[i] > 11) || (!(cin >> groupsize[i]))){
cout << string(60, '\n');
cout << "Please re-enter customer's group size. " << endl << "Input must be a number and must not be smaller than 1 and greater than 10: " << endl;
cin >> groupsize[i];
cin.clear();
cin.ignore(20, '\n');
}
return groupsize[i];
}
int main()
{
int groupsize[10]={0,0,0,0,0,0,0,0,0,0};
int i;
char newentry='n';
do{
cout << string(60, '\n');
cout << endl << endl << "Please enter customer's group size: " << endl;
groupsize[i]=validateGroupSize(groupsize, i);
i++;
cout << "Would you like to enter another questionare? Enter either 'y' or 'n': " << endl;
cin >> newentry;
}while((newentry =='y') || (newentry=='Y'));
system("pause");
return 0;
}
到目前爲止程序工作的無效字符,因爲當我輸入一個字母,它會提示我的錯誤信息。不幸的是,當我輸入一個大於10的數字時,它會簡單地忽略條件並繼續執行程序的其餘部分。我做錯了什麼?
主要是什麼'i'? – P0W
這應該從來沒有編譯過。 – Panzercrisis
對不起,我忘了在這裏添加int i。我在int main的while循環中找到i ++來計算它循環了多少次。 – noobuser333