我目前正在创建一个程序,在程序开始时,它会要求用户输入数组的大小。它接受数字并使字符串和字符无效,但是当用户输入“5 测试输入”时,它接受第一个字符,即 5。
这是我当前用于验证输入的代码:
int array[1000];
int arrsize;
stringstream convert;
string arraysize1;
again:
cout << "\nEnter the Array Size: ";
cin >> arraysize1;
//Conversion
strcpy(arraysICE, arraysize1.c_str());
//Validating each array element
for (int i = 0; i < arraysize1.length(); i++){
//If the program detects a non-numeric input, it will ask the user to input again
if (!(isdigit(arraysICE[i])) || ((isspace(arraysICE[i])))){
cout << "Invalid input! Please try again!" << endl;
cin.clear();
cin.ignore(1000, '\n');
goto again;
}
//If it is a numeric input, the input will become the array size
else
continue;
}
convert << arraysize1;
convert >> arrsize;
array[arrsize];
每当用户输入字符或字符串时,程序都会使输入无效,例如“Test 5”、“Test”、“T3st”和“5Test”,但是当用户在第一个字符处输入数字时,继续字符是一个空格,它接受第一个数字,但不应该。
我知道如果我想创建动态列表,我应该使用 LinkedList,但是我们的教授要求我们使用 Array。抱歉,如果我违反了此处的某些规则,我是 Stack Overflow 的新手。