>>37
coutでの出力される形式は、データの型によって決まるから、
文字として出力したければchar型の値を渡す必要があるよ。

cout << ' ' << (isprint(i) ? static_cast<char>(i) : ' ');