В терминале мак после вывода пишет знак %

При выводе в терминале через cout постоянно выводит знак %. Я так понял, что он ждет дальнейшего ввода, но как это убрать? Помогает после cout писать endl или "\n", но это не очень удобно и в некоторых ситуациях невозможно. Вроде бы раньше такого не было. введите сюда описание изображения


Ответы (2 шт):

Автор решения: KoVadim

это так шелл (думаю, это все таки zsh) или терминал показывает Вам, что вывод предыдущей команды завершился без перевода строки.

вопрос на enSO

Там предлагают исправить здесь

iTerm 2: Preferences->Profiles->Terminal->Report Terminal Type.

у меня мака нет, проверить не могу

→ Ссылка
Автор решения: Serge3leo

Как верно заметил @KoVadim это ваш шелл, zsh, отмечает, что добавил перевод строки к выводу программы. Данная функция управляется переменной окружения PROMPT_EOL_MARK, если не установлена - реверсивный процент.

leo@leom20 ~ % printf "No LF"
No LF%
leo@leom20 ~ % PROMPT_EOL_MARK="{XXX"
leo@leom20 ~ % printf "No LF"
No LF{XXX
leo@leom20 ~ % PROMPT_EOL_MARK=""
leo@leom20 ~ % printf "No LF"
No LF
leo@leom20 ~ % 

Её можно установить в profile, а можно в настройках шелл терминальной программы. man zsh, man zshoptions, ... - полезное чтение.

P.S. Да, раньше по-умолчанию был bash, у него другие тараканы, но можно к нему вернуться...

→ Ссылка