C++ 凯撒密码-什么';怎么了?

C++ 凯撒密码-什么';怎么了?,c++,string,encryption,C++,String,Encryption,我在启动加密程序时遇到问题。对于单字字符串,它工作得很好(例如,abcd),但当我键入两个或三个以上的单词(例如,一个句子,abcd ab ac),它不会要求输入关键字,而是重写我键入的句子。我做错了什么?提前谢谢。守则: #include <iostream> #include <ctime> #include <cstdlib> #include <conio.h> #include <string> #include <st

我在启动加密程序时遇到问题。对于单字字符串,它工作得很好(例如,abcd),但当我键入两个或三个以上的单词(例如,一个句子,abcd ab ac),它不会要求输入关键字,而是重写我键入的句子。我做错了什么?提前谢谢。守则:

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <conio.h>
#include <string>
#include <stdlib.h>
#include <stdio.h>

int main()
{
        int key, l;
        char choose;
        string message;
        cout<<"Type the message"<<endl;
        cin>>message;
        cout<<"Give me a key from 0 to 26"<<endl;
        cin>>key;
        for (int i=0,l=message.size(); i<=l; i++)
        {
            if (isalpha(message[i]))
            {
                if (isupper(message[i]))
                {
                    cout<<(char)('A'+(message[i]-'A'+key)%26);
                }
                if (islower(message[i]))
                {
                    cout<<(char)('a'+(message[i]-'a'+key)%26);
                }
            }
            else
            {
                cout<<message[i];
            }
        }
        return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main()
{
int键,l;
字符选择;
字符串消息;
不能使用



cin只读取到下一个空格,其余的输入保存在流缓冲区中,以便您在第一步中输入句子中的下一个单词作为第二个cin的输入。

如果我们能看到您编写的代码,这将更容易回答。否则,这将是一场谁能猜到和/或读取您的min的竞赛d、 对不起,我忘记了。我编辑了它。如果我运行它并输入几个单词,它不会重复我键入的句子;它要求输入一个键,然后打印我输入的第一个单词。你确定你在运行这个程序吗?我也运行了这个程序,它工作了。你能发布你的输出吗?谢谢,它工作了。你能向我解释一下为什么我的解决方案不可用吗不对吗?
std::getline(std::cin, message);