这应该是输入并将每个字母1向右移动。暂停是阻止它做任何事情吗?
如何更改它以便它不仅输出用户输入的内容?
这是Visual Studio Community 2013中的C ++代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string>
#include <cctype>
int _tmain(int argc, _TCHAR* argv[])
{
string cyphertext;
cout << "Paste your cyphertext and press enter to shift right 1: ";
cin >> cyphertext;
void encrypt(char * cyphertext, unsigned int offset);
for (int i = 0; cyphertext[i] != 0; i++) {
char firstLetter = islower(cyphertext[i]) ? 'a' : 'A';
unsigned int alphaOffset = cyphertext[i] - firstLetter;
int offset = 0;
unsigned int newAlphaOffset = alphaOffset + offset;
cyphertext[i] = firstLetter + newAlphaOffset % 26;
cout << "" << "Right One: " << cyphertext;
system("pause");
return 0;
}
}
答案 0 :(得分:2)
您的pause
位于'加密'循环中。它需要在外面。循环中的return
将终止程序;这也需要在循环之外。
请注意,当代码在正统布局(例如问题中现在的布局)中缩进时,更容易看到此类错误。使用有缺陷的布局使得很难看到很多问题在代码整齐排列时很明显。
您还声明了一个您从未使用过的函数encrypt()
;不要那样做。在其他函数中声明函数通常是个坏主意。鉴于没有定义encrypt()
函数,没有'void函数',所以我已经为你更改了问题标题。