Подтвердить что ты не робот

Является clrscr(); функция в С++?

Я везде искал эту функцию и не могу найти файлы заголовков, чтобы сделать эту работу. В нем говорится, что clrscr() необъявлен, что подводит меня к вопросу. Является clrscr(); функция в С++?

4b9b3361

Ответ 1

Он использовался как функция в < conio.h > в старых компиляторах Borland C.

Это не стандартная функция С++.

Ответ 2

И прежде чем кто-то отправит обычный запрос "напишите мне запрос conio.h", могу ли я указать, что этот древний заголовочный файл Borland содержит только объявление функции. Вам также понадобится поддерживающая библиотека Borland, которая не будет совместима с любой современной системой компиляции С++.

Ответ 3

Как упоминалось ранее, clrscr() - от turbo С++, внутри conio.h

Для всех целей и целей conio.h является "нестандартным", и как таковое, вероятно, следует избегать.

Я стараюсь использовать прекомпилятор, чтобы выбрать, что использовать для простого ясного экрана, и просто вызвать программу очистки операционной системы... это достаточно умно, чтобы знать, как "высокий" экран.

// somewhere in the program
#define WINDOWS 1

void console_clear_screen() {
  #ifdef WINDOWS
  system("cls");
  #endif
  #ifdef LINUX
  system("clear");
  #endif
}

В окнах вы можете посмотреть на windows.h, вы можете напрямую взаимодействовать с консолью Windows, используя "дескриптор", часто отмечаемый в коде как hWin.

В linux мне повезло с проклятиями /ncurses, хотя сначала это немного запутывает.

update Вызов системных программ (clear.exe?) - потенциальный риск для безопасности - если кто-то может каким-то образом захватить системный вызов через альтернативный авеню, они могут заставить вашу программу делать странные вещи. Моя рекомендация заключается в том, чтобы выкопать в свою консоль платформы api, чтобы добиться этого.

Ответ 4

вы должны включить этот заголовочный файл для этой функции

#include <conio.h>

Ответ 5

В веб-поиске говорится, что файл заголовка, который вы хотите, является "conio.h" - я не пробовал, поэтому никаких гарантий. Его существование также может зависеть от того, на какой платформе вы компилируете.

Ответ 6

вы можете использовать команду system cls для очистки экрана вывода.

clrscr() - из turbo С++, внутри conio.h и conio.h является "нестандартным", и по существу, вероятно, следует избегать. пример

    #include<windows.h>
    main()
    {
    some code....;
    system("cls");
    some more code;
    }

его протестировано и работает. Я использую dev С++ с компилятором mingw..:)

Ответ 7

Самый простой способ очистить экран в реальном С++ - это просто отправить пустую строку. Конечно, это предполагает, что stdout направлена ​​на экран, а не файл:

for (int i = 0; i < 80; ++i)
     cout << "\n";
cout << endl;

Ответ 9

В Unix-подобных системах вы можете использовать escape-коды VT100.

std::cout << "\033[2J" << std::flush;

См. http://www.termsys.demon.co.uk/vtansi.htm

Ответ 10

В Linux я всегда использую:

void clrscr(void)
{
   fprintf(stdout, "\033[2J"); // clean screen
   fprintf(stdout, "\033[1;1H"); // move cursor to the first line
}