Очистка экрана в C ++ / XCode

0

Я пытаюсь написать программу C++ для класса с использованием XCode. Одна из вещей, которую я хочу сделать, это просто очистить экран. Я рассмотрел, как это сделать, однако уловка заключается в том, что код должен запускаться как на компьютере Windows, так и на Macintosh. Я посмотрел на другие подобные вопросы, но ни один из ответов не помог мне. Я знаю, что нет "экрана", но я хочу, чтобы система очистила окно вывода. Я знаю, что system("clear"); команд system("clear"); делает то, что я хочу, но когда XCode тестирует программу, вместо очистки экрана он не печатает TERM Variable not set

Я пробовал открывать терминал и печатать на нем clear и он действительно реагирует так, как я этого хочу, так почему же "терминал" внутри XCode делает то же самое? Я просто хочу, чтобы окно вывода в XCode отвечало, чтобы clear то же, что и терминал.

Вот что я уже пробовал;

Я пошел в терминал и запустил echo $TERM, на который терминал ответил xterm-256color. Затем я перешел к XCode и открыл настройки "Схемы" и нашел параметр "Переменные среды" в разделе "Аргументы". Я добавил переменную (в пустой список) под названием TERM и дал ей значение xterm-256color. При повторном запуске программы на выходе отображается ¿[H¿[2J в окне вывода, в котором TERM Variable not set было напечатано значение TERM Variable not set.

Последнее, в качестве напоминания, я не могу изменить исходный код так, как сейчас, или может вызвать ошибки при запуске программы на компьютере под управлением Windows.

  • 0
    Это зависит от операционной системы. Вы можете рассмотреть возможность использования ncurses
Теги:
xcode

1 ответ

1
Лучший ответ

Это не работает, потому что вы "лжете": терминал в Xcode не является xterm-256color, но он dumb терминал. Точнее, дисплей представляет собой NSTextStorage, который собирает stdout и/или (в зависимости от целевого переключателя) stderr.

Немой терминал не может очистить дисплей. Если вы хотите изменить это, вы можете написать плагин, похожий на Xcode-Colors, что добавит способность понимать цвета ansi.

Однако, если вы хотите, чтобы код просто запускался в Windows и OSX, вы можете придерживаться своей system("clear") решений system("clear"), так как она работает на "нормальном" OSX-терминале.

  • 0
    Хорошо, спасибо. Моя единственная реальная проблема с этим заключается в том, что я должен включить выходные данные в программу, а также исходный код. Я бы предпочел не запускать программу как внутри XCode, так и вне XCode, чтобы правильно получить вывод. Есть ли способ настроить XCode, чтобы он отображал вывод как обычный терминал?
  • 0
    Вырежьте и вставьте из нужных вам линий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню