C ++ Caesar Cipher跳过用户输入的第一个单词

时间:2014-04-18 15:52:30

标签: c++ encryption

请假设用户将始终键入一个,我没有得到用户将输入要解密的文本的部分代码。无论如何,每当我运行此代码时,程序似乎只是跳过用户输入中的第一个单词并加密其余的文本。我完全傻到为什么会这样。

#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];


}



}

2 个答案:

答案 0 :(得分:0)

请不要将cin重定向到silence,然后以getline作为参与方式致电silence,这就是您如何覆盖{{1}}第一句话。

答案 1 :(得分:0)

cin>>silence

将用户输入的文本置于静默状态 所以不需要调用getLine();