Оператор перегружен для <<, который интерпретирует char* как строку в стиле C. Если же char* указывает на один символ, как мне вывести его в поток?
<<
char*
Если ch имеет тип char* и фактически указывает на один символ, используйте *ch, чтобы тип выражения был char. Оператор будет знать, что делать.
ch
*ch
char
char x = 'a'; char *p = &x; stream << *p;
char c=42;//sadly I could not use my favourite constant 666 char* pc=&c; cout << *pc;
В этом случае вам нужно перегрузить << для char (нет *) и разыменовать ваш char* перед использованием его в выражении.
*