0

我想检查这个数组中输入的长度。这里必须输入八个数字。这是我的代码:

#include <iostream.h>
#include <iomanip.h>

void main () 
{
    int n, i;
    cout << "1. Vyvedi fakulteten nomer" << endl;
    cin >> n;
    switch(n) {
    case 1:
        int F[30];
        for (i=1; i<=30; i++) {
            cout << i << ". Fak. nomer: ";
            cin >> F[i];
        }
    }
}
4

2 回答 2

0

如果您需要 8 位数字,那么您知道输入必须介于 10000000 和 99999999 之间。所以只需检查一下:

cin >> n;
if (n < 10000000 or n > 99999999) {
    // Error: need 8 digits.
}

这适用于正数。如果您还需要处理负数,请相应地调整条件。

如果您还需要从数字中提取每个数字,那么这里已经多次回答了这个问题。例如:如何通过按位运算获得整数的第 N 位?

于 2012-11-11T16:27:59.290 回答
0

输入正确性检查的常用例程使用 do while 循环

 int input;
 do
 {
      std::cin >> input;
 }
 while(input < 10000000 || input > 99999999);

这样,程序将等待有效输入,直到提供。这里不需要数组。如果程序需要处理不适合任何整数类型的非常大的数字,那么您可以将其读取为字符串

 std::string input;
 do
 {
      std::cin >> input;
 }while(input.length() != my_desired_length);
于 2012-11-11T17:26:58.777 回答