C++凯撒密码跳过用户输入中的第一个单词
C++ Caesar Cipher skipping over first word in user input
请假设用户总是输入一个,我还没有到达用户将输入文本进行解密的代码部分。无论如何,每当我运行这段代码时,程序似乎只是跳过用户输入中的第一个单词,并加密其余的文本。我完全惊呆了,为什么会这样。
#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];
}
}
在用silence
作为parm调用getline
之前,不要将cin
重定向到silence
,这就是覆盖第一个单词的方法。
cin>>silence
将用户输入的文本静音因此,不需要调用getLine();
相关文章:
- 如何将行的第一个单词作为一个变量,将行的其余部分作为另一个变量进行归档/存储
- 当字符串中只有一个"GOOD"字符串可用时,从没有空格的字符串中提取第一个单词的最佳和有效方法?
- QT 创建器只会将第一个单词从文本编辑转换为纯文本
- 从文件的一行中查找数字的平均值,避免使用第一个单词
- 删除 C++ 中字符串中第一个单词之前的空格
- C 如何在字符串中大写每个句子/行的第一个单词
- 大写每个句子中的第一个单词
- 检查字符串中的第一个单词是否等于 "print"
- 字符串将第一个单词移动到字符串的末尾
- C++文件输出只接受第一个单词
- 获取字符串的第一个单词并从实际字符串中删除该单词
- 字符串:使用 strcmp 查找第一个单词是否重复
- 我的算法只是将第一个单词写入文件
- C ++将文本文件中的读取到向量中,<vector>然后根据内部向量中的第一个单词写入向量或数组
- string.length()在第一个单词后停止
- C++ "cin"只读第一个单词
- 获取字符'='之前的所有标准::字符串或第一个单词
- 检测重复的单词 C++,不检测第一个单词
- 在控制台中输入字符串时.然后只打印第一个单词
- 如何从字符串中删除第一个单词