Я пытался решить проблему с Caesar Cipher и застрял на очень новичке, похожем на баг, но я не знаю, почему мой код ведет себя так. Я добавил целое число к символу и ожидал, что он увеличится в стоимости, но вместо этого получаю отрицательное число. Вот мой код. Хотя я нашел способ обойти это, но почему этот код ведет себя так?
#include <iostream>
using std::cout; using std::endl;
int main()
{
char ch ='w';
int temp;
temp = int(ch) + 9;
ch = temp;
cout<<temp<<endl;
cout<<(int)ch;
return 0;
}
Вывод:
128
-128