Est clrscr(); une fonction en C++?

j'ai cherché partout pour cette fonction et je ne peux pas trouver les fichiers d'en-tête pour faire ce travail. Cela dit clrscr () non déclaré qui m'amène à la question. Est clrscr(); une fonction en C++?

13
c++
demandé sur Benjamin 2009-05-30 21:16:21

10 réponses

Il utilisé pour être une fonction dans , dans le vieux-Borland C compilateurs.

ce n'est pas une fonction standard C++.

32
répondu Pablo Santa Cruz 2009-05-30 23:34:12

et avant que quelqu'un poste l'habituel "s'il vous plaît envoyez-moi le conio.h Fichier" requête, puis - je souligner que cet ancien fichier D'en-tête Borland ne contenait que la déclaration de la fonction. Vous aurez également besoin de la bibliothèque Borland, qui ne sera compatible avec aucun système de compilation c++ moderne.

12
répondu 2009-05-30 17:39:20

comme mentionné plus haut, clrscr() est de turbo C++, à l'intérieur de conio.h

à toutes fins pratiques, conio.h est "non standard", et en tant que tel devrait probablement être évité.

j'ai tendance à utiliser le précompilateur pour choisir ce qu'il faut utiliser pour un écran clair simple, et il suffit d'appeler le programme clair du système d'exploitation.... il est assez intelligent pour savoir comment les "grands" de l'écran.

// somewhere in the program
#define WINDOWS 1

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

Dans windows, vous pouvez regarder le Windows.h, Vous pouvez interagir directement avec la console windows en utilisant un "handle", souvent noté dans le code comme un hWin.

sous linux, j'ai eu de la chance avec les malédictions/ncurses, même si c'est un peu confus au début.

mise à jour l'Appel de programmes système (clair.exe?)est un risque potentiel de sécurité - si quelqu'un est capable de détourner l'appel système d'une façon ou d'une autre par une autre avenue, ils peuvent forcer votre programme à faire des choses étranges. Mon la recommandation est de creuser dans l'api de la console de votre plateforme pour faire ces choses.

7
répondu Ape-inago 2016-04-12 12:11:43

vous devez inclure ce fichier d'en-tête pour cette fonction

#include <conio.h>
3
répondu Muhammad Akhtar 2009-05-30 17:31:35

une recherche sur le web indique que le fichier d'en-tête que vous voulez est 'conio.Je n'ai pas essayé, donc pas de garanties. Son existence peut également dépendre de la plate-forme contre laquelle vous compilez.

1
répondu Bruce 2009-05-30 17:20:55

vous pouvez utiliser la commande system cls pour effacer l'écran de sortie..

clrscr () est de turbo c++, inside conio.h et conio.h est "non standard", et en tant que tel devrait probablement être évité. exemple

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

sa testé et fonctionne.. j'utilise dev c++ avec mingw compiler.. :)

1
répondu r_goyal 2013-09-03 16:24:57

la façon La plus simple pour effacer l'écran en vrai C++ est simplement d'envoyer un tas de lignes blanches. Bien sûr, cela suppose que stdout est dirigé vers l'écran et non un fichier:

for (int i = 0; i < 80; ++i)
     cout << "\n";
cout << endl;
0
répondu Eclipse 2009-05-30 17:23:04

je faisais borland aussi.

enquêter sur les malédictions est une bonne idée. Il fonctionne sur de nombreuses plateformes unix.

vous pourriez jeter un oeil à nconio à la forge source.

Ce semble prometteur.

0
répondu EvilTeach 2009-05-31 02:51:47

sur les systèmes de type Unix, vous pouvez utiliser les codes d'échappement VT100.

std::cout << "3[2J" << std::flush;

voir http://www.termsys.demon.co.uk/vtansi.htm

0
répondu Janus Troelsen 2011-12-22 14:25:35

sous Linux j'utilise toujours:

void clrscr(void)
{
   fprintf(stdout, "3[2J"); // clean screen
   fprintf(stdout, "3[1;1H"); // move cursor to the first line
}
0
répondu Kacper Pluta 2017-08-18 09:30:36