如何强制用户在从菜单中选择之前输入一些数字

How to make force a user to enter some numbers, before they choose from a menu?

本文关键字:输入 数字 选择 用户 何强制 菜单      更新时间:2023-10-16

我有一个具有不同菜单编号的菜单系统。

用户必须先选择选项1,然后才能使用选项2到5。

如何实现此错误消息?

这是我的简化代码:

do{
switch(menu){
          case 1:
              cout<<"Input "<<input<< "numbers: ";
              for(int i=0;i<input;input++){
                           listInput(&array[i]) }}
              cout<<"nnEnter r/R to return to the menu: ";
              cin>>r;
              system("cls");
                    break;
          case 2:
              cout<<"Calculate Sum";                 //if menu!=case 1 first
              //my operations                        //cout<<"Error message";
               break;                                //something like this??
          default:
              cout<<"Invalid Input";
               }}                              
               while(r=='r'||r=='R');

如果输入数字是强制性的,请不要给用户错误的选项。一种选择是将case 1代码移动到getnumbers函数中,并执行以下操作:;

getnumbers(&array);    // Force the user to input numbers before getting the 
                       // option to select the wrong option
...menu input
do {
    switch(menu){
      case 1:
          getnumbers(&array);
          break;
      case 2:
          cout<<"Calculate Sum";                 //if menu!=case 1 first
          //my operations                        //cout<<"Error message";
           break;                 
...

创建一个全局变量(比如flag)并将其设置为0。
在情况1中,将变量设置为1(flag = 1
在其他情况下,如果flag不为1,则只显示一个错误和break。

do{
int flag = 0;
switch(menu){
          case 1:
              cout<<"Input "<<input<< "numbers: ";
              for(int i=0;i<input;input++){
                           listInput(&array[i]) }}
              cout<<"nnEnter r/R to return to the menu: ";
              cin>>r;
              system("cls");
              flag = 1;
                    break;
          case 2:
              if (flag == 0)
              {
                  cout <<"Choose 1 first";
                  break;
              }
              cout<<"Calculate Sum";                 //if menu!=case 1 first
              //my operations                        //cout<<"Error message";
               break;                                //something like this??
          default:
              cout<<"Invalid Input";
               }}                              
               while(r=='r'||r=='R');