#include <stdio.h>
int main()
{
char _char = 32;
int x, p, i, d;
scanf("%d ", &x);
while(_char == 32)
_char = getchar();
x = x%26;
printf("The encrypted string is: ");
while((_char >= 'a' && _char <= 'z') || (_char >= 'A' && _char <= 'Z'))
{
if(_char >= 'a' && _char <= 'z')
_char = 'a' + (_char + x - 'a')%26;
else
_char = 'A' + (_char + x - 'A')%26;
d = 'a' - 'A';
p = (_char >= 'a') ? _char - d : _char + d;
printf("%c", p);
scanf("%c", &_char);
}
return 0;
}
コードの説明 : プログラムは、数字 'x' の後にスペースと文字列を受け取り、最初の数字まで、または受け取る文字がなくなるまで、これらの文字を (変更して) 印刷します。コード ブロックで実行すると正常に動作しますが、CMD を使用して入力をファイルとして挿入すると、挿入すると無限ループが発生します。
1 FffF
0 または任意の数値を追加すると、正常に動作します。
1 FffF0
無限ループは次のようになります。
暗号化された文字列は次のとおりです。
BBBcccDDDeeefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz....
どうすればこれをsloveできますか!?