我是编码新手,C++ 是我的第一门语言, 所以我制作了这个程序,它在从用户那里获取文本(字符串)输入后对文本进行加密和解密,我希望这个程序能够在 1 次运行中多次使用,所以我做了这个递归循环, 程序在第一次迭代中运行良好,但在第二次迭代中它只是跳过文本输入并向前移动
void cipherMain()
{
std::string text;
int selectOpt;
std::cout << "Enter Text" << std::endl;
getline(std::cin, text);
// std::cin >> text;
std::cout << "1.Cipher the text\n2.Decipher the text\n";
std::cout << "Select your option: ";
std::cin >> selectOpt;
std::string cipheredText;
std::string deCipheredText;
switch (selectOpt)
{
case 1:
cipheredText = cipher(text);
std::cout << "Ciphered text is:\n\"" << cipheredText << "\"\n";
system("pause");
break;
case 2:
deCipheredText = dCipher(text);
std::cout << "Deciphered text is:\n\"" << deCipheredText << "\"\n";
system("pause");
break;
default:
std::cout << "Invalid Input" << std::endl;
break;
}
char restart;
std::cout << "Enter 'y' to restart the program or 'n' to exit the program\n";
std::cin >> restart;
if(restart=='y')
{
system("cls");
cipherMain();
}
else
{
system("exit");
}
}
我尝试过的:
我用 getline(std::cin,text)
替换了 std::cin >> text;
这有效,但我希望我的程序采用整行,而不是只在输入中输入 1 个单词。
我想让我的 getline(std::cin,text)
工作