Причина, по которой вы получаете эти результаты, заключается в том, что, поскольку x, y и z являются символами, при использовании istringstream он читает первый символ в x, он пропускает пробел и читает символ '2' в y и следующий символ это «0», и это входит в Z.
char x, y, z;
cout << "Please enter three integers: ";
cin >> x >> y >> z;
Если это не сработает, просто используйте int, потому что попытка найти обходной путь для использования символов вместо int для экономии памяти беспокоит не ту вещь.