1

一部のコードに問題があり、その根底に到達できません。このコード:

int main()
{
int choice;

while (choice != -1)
{
      system("cls");
      std::cout << "Main Menu: " << std::endl
                << " 1. Encode." << std::endl
                << " 2. Decode." << std::endl
                << "-1 to exit." << std::endl;

      std::cin >> choice;

      switch (choice)
      {
             case 1:
                  encode();
                  break;
             case 2:
                  decode();
                  break;
             case -1:
                  break;
      }
}

getchar();
return 0;

}

void encode()
{
 std::string plainText;
 std::string encText = "Test";

 std::cout << "Enter text to be encrypted.\n";

 getline(std::cin, plainText);

 for (int x = 0; x < plainText.length(); x++)
 {
     //encText += plainText.substr(x, x + 1);
 }

 std::cout << encText;
 getchar();

 return;
}

最初の cin >> 選択で '1' を入力すると、encode() に入ります。そこにテキストを入力すると、プログラムは while に戻り、system("cls") を実行してから、すぐに戻ります。暗号化するテキストを入力してください。エンコード()でダウン。

何か助けはありますか?私は無知です。

4

1 に答える 1

1

またはのwhile後にループを終了したい場合は、の条件を満たさなければなりません。これは、関数呼び出しの後に簡単に設定することで実行できます。encode()decode()whilechoice-1

         case 1:
              encode();
              choice = -1;
              break;
         case 2:
              decode();
              choice = -1;
              break;

ご承知のとおり、returnの最後のencode()encode()関数を終了させますが、 ではありませんmain。このコード行は実際には何もしません。それ以降は何もないので、とにかく発生します。

于 2013-02-06T01:20:10.077 に答える