Какие целые значения вы вводите? Я предполагаю, что они очень низкие (≤32). Когда вы записываете значение (unsigned
) char
в форматированный выходной поток, записывается символьное значение , а не число c. (И в большинстве современных систем низкие символьные значения соответствуют непечатаемым символам, поэтому вы не обязательно будете видеть какие-либо выходные данные.)
Если вы хотите написать числа, вам нужно изменить код на
for (int i = 0; i < n; i++) {
std::cout << static_cast<int>(a[i]) << '\n';
}
Или:
std::copy_n(a, n, std::ostream_iterator<int>(std::cout, "\n");