请假设用户将始终键入一个,我没有得到用户将输入要解密的文本的部分代码。无论如何,每当我运行此代码时,程序似乎只是跳过用户输入中的第一个单词并加密其余的文本。我完全傻到为什么会这样。
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
cout<< "Do you want to encrypt or decrpyt your file?" << endl;
cout<< "Type 1 for encrytion"<<endl;
cout<< "Type 2 for decrption"<<endl;
string silence;
int choice;
cin>> choice;
if(choice== 1)
{
cout<< "Please enter a string to encrypt: ";
cin>> silence;
getline(cin,silence);
for(int i =0; i < silence.length();i++)
{
if (isalpha(silence[i]))
cout<< char(silence[i]+1);
else cout<<silence[i];
}
}
答案 0 :(得分:0)
请不要将cin
重定向到silence
,然后以getline
作为参与方式致电silence
,这就是您如何覆盖{{1}}第一句话。
答案 1 :(得分:0)
cin>>silence
将用户输入的文本置于静默状态 所以不需要调用getLine();