Petite commande "system"

PsychoH13

Membre enregistré
19 Octobre 2005
8
0
39
Bonjour à tous,

voilà le topos, mon prof de C++ nous adonné un petit programme en correction d'un exercice, dans celui-ci se trouve une petite fonction faisant partie de la bibliotèque cstdlib :

system();

Dans son programme il l'utilise de telle sorte: system("cls");
Ceci a pour but dans la console d'effacer les données précédemment écrites, sur pc ça marche, seulement sur mac il me dit que la commande "cls" est inconnue.

Ma question est la suivante: quelle est la commande équivalente sur Mac OS X ?

Merci d'avance
 
PsychoH13 a dit:
Bonjour à tous,

voilà le topos, mon prof de C++ nous adonné un petit programme en correction d'un exercice, dans celui-ci se trouve une petite fonction faisant partie de la bibliotèque cstdlib :

system();

Dans son programme il l'utilise de telle sorte: system("cls");
Ceci a pour but dans la console d'effacer les données précédemment écrites, sur pc ça marche, seulement sur mac il me dit que la commande "cls" est inconnue.

Ma question est la suivante: quelle est la commande équivalente sur Mac OS X ?

Merci d'avance
Sous UNIX:

#include <stdlib.h>

........

system("clear");
 
Les commandes systèmes sont totalement différentes entre un Unix et Windows. C'est ce genre de lignes de code qui crée des incompatibilités entre ces deux plates-formes. Si tu veux y faire appel dans un programme multi-plate-forme, il faut les traiter par exemple en pré-processing en faisant un cas "Windows" et un cas "Unix" (autres quoi :D ) ;)
 
J'avais déjà essayé system("clear"); mais ça ne marchait pas, et de plus il me dit "TERM environment variable not set." :D
 
PsychoH13 a dit:
J'avais déjà essayé system("clear"); mais ça ne marchait pas, et de plus il me dit "TERM environment variable not set." :D

c'est normal tu excutes sous la console c'est a toi de choisir dans quel thread et quel term tu lances la cmd
 
PsychoH13 a dit:
Comment on fait pour que ce "system("clear")" fonctionne quelque soit l'endroit où on l'exécute???

tu utilises des cross lib ou alors tu fais une compile conditionnelle

quand tu programmes tu tests ou tu restes comme ca à attendre ?
system ne fait qu'executer une commande sur le prompt machine
tu definies une macro __POSIX__ si c'est posix ->
BASH (il faut que le prompt du user soit BASH ici )

#else
le systeme qui à des commandes dos d'un autre age

gcc test.c -o test

test.c
Bloc de code:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i=0;
    
    for( i; i<10 ;++i)
    {
        printf(" -- Loop index : %i --\n\n", i );
        system("ls -la");
        system("tput cup 12 20");
        system("sleep 2");
        system("clear");
    }
    
    return 1;
}
sinon

man ncurses
man clear
man system