提问者:小点点

如何限制充电长度


我知道人们会立即看到标题并只是说:“使用字符串”或“字符只能是长度为1”,但这些都有问题。

对于第一种情况,由于稍后在使用switch语句的代码中,我的变量必须保持为char,这样它不会导致任何错误;对于第二种情况,在测试过程中我发现,即使我输入了多长度的输入,它也只是将每个字符分别运行到switch语句中,这是我不希望发生的。欢迎任何帮助,哦,下面是代码:

char input;
do {
    cout << "Please enter a number from 1 to 4.";
    cin >> input;
    if (sizeof(input)!=1) {
        cout << "Please just enter a number";
    }
    else {

        switch (input) {

        case '1': {
            cout << "One";
            break;
        }

        case '2': {
            cout << "Two";
            break;
        }

        case '3': {
            cout << "Three";
            break;
        }

        case '4': {
            cout << "Four";
            break;
        }

        default:

            cout << "Enter only a number from 1-4!";

        }

    }
    
} while ((input) != '4');

注意,我至少尝试过使用strlen和size函数,但没有效果。


共1个答案

匿名用户

那么,使用,因为的长度只能为1。

std::string input;
std::cin >> input;
if (input.size() != 1) {
  std::cout << "Wrong input";
} else {
  switch (input.front()) {
  case '1': 
  // ...
  }
}