Запустите команду с выводом через cat -A
. Возможно, либо значение s
, либо вывод, полученный с помощью endl
, дает вам символ '\r'
, который обычно отправляет курсор назад в начало строки.
РЕДАКТИРОВАТЬ: При дальнейшем рассмотрении, паразитные '\r'
почти наверняка в s
, а не в выводе, производимом endl
. Я думал, что могут происходить какие-то забавные локали, но наличие s
, равное "high\r"
, объясняет симптомы.
EDIT2: если в вашей системе нет cat -A
(это расширение GNU), попробуйте cat -v
или, если вы в отчаянии, od -c
.