인쇄 가능한 전체 ASCII 문자 집합을 사용하는 코드를 만들려고합니다. 내 문제는 126보다 높은 숫자가 될 문자가 '?'인데 'r'을 제외하고 제대로 인쇄된다는 것입니다. 왜 내 코드는 'r'이 인쇄 가능한 문자로 롤백 할 수 있지만 그 이후의 문자는 롤백 할 수 없게합니까? (stuvwxyz {|} ~)ROT-13 전체 인쇄 가능한 ASCII 문자 집합 사용 C++
"비밀번호를 입력하십시오
ABCDEFGHIJKLMNOPQRSTUVWXYZ. {|} ~
nopqrstuvwxyz {|}을! ~ ????????????"
#include <iostream>
#include <string>
using namespace std;
void encrypt(string password)
{
int count = 0;
char i;
for (count = 0; count < password.length(); count++)
{
i = password.at(count) + 13;
if (i >= 127)
{
i = 32 + (i - 126);
cout << i;
}
else
cout << i;
}
return;
}
int main()
{
string password;
cout << "Please enter your password." << endl;
cin >> password;
encrypt(password);
cout << "\n";
return 0;
}
은 "내 문제는 문자에 올 때 그들이 '로 인쇄 (126)보다 수가 더 높을 것이다 (예를
'y' -> 'J' -> 'y' -> 'J' -> ...
얼마나 통지) ? ', "- 이러한 숫자는 ASCII 문자 집합의 일부가 아니기 때문입니다. –BTW, ** 디버거 **를 사용한다면,'i'의 값은'+ 128 '이 아닌''s "'에 대해'-128'이라고 보았을 것입니다. ... 그래서 다음에, 게시하기 전에, 먼저 디버깅을 시도하십시오. – Ped7g