之前的cin之后的C ++ getline没有提供输入机会

时间:2016-03-29 13:40:56

标签: c++ cin

std::string ed;
std::cout << "Encrypt or Decrypt? (e/d)\n" << std::endl;
std::cin >> ed;
std::cout<<std::endl;

if (ed == "e")
{
    std::string ch;
    std::string crypt;

    std::cout << "Type, and I shall encrypt.\n";

    std::getline(std::cin, ch);
    std::cout << "\n enter your keyword. \n";
    std::cin >> crypt;

我正在尝试编写一个简单的加密程序。除了输入之外,它都像魅力一样。我听说输入文本文件实际上可能更容易,但我不能简单地放弃它。因此,当我运行此程序时,它只是跳过&#34; ch&#34;的输入,如果我之前声明char x,至少给我一个输入行:

char x;
std::cin >> x;
std::getline(std::cin, ch);

但是这会吞下输入的第一个字符,因此用户必须以空字符开始每个输入。有什么方法可以解决这个问题吗?

最好的Busssard

0 个答案:

没有答案