Как проверить, является ли ОС Windows или Debian в C ++? - PullRequest
3 голосов
/ 01 апреля 2010

Я хочу очищать экран консоли каждый раз, когда пользователь вводит данные в C ++.

Я думаю об использовании системной команды. Для Windows это "cls". Для Linux это «понятно». Есть ли способ проверить, в какой системе использовать соответствующую команду в c ++?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 01 апреля 2010

Существует хитрое решение:

if (system("clear"))
  system("cls");

Для Unix он просто работает правильно. Для Windows появится сообщение об ошибке типа

«очистить» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Пока он будет очищен "cls". Так что в окне командной строки он не оставит ни одной дорожки. : D

4 голосов
/ 01 апреля 2010

Нет, стандартов C ++ не существует.

Вы можете указать вашему компилятору Windows определить макрос WINDOWS, а компилятору linux определить макрос LINUX; некоторые компиляторы делают это по умолчанию (например, Visual Studio определяет WIN32).

1 голос
/ 01 апреля 2010

Вы также можете использовать препроцессор C - условный синтаксис в C ++.

#ifdef linux
    //clear
#else
    //cls
#endif
0 голосов
/ 01 апреля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...