PROBLEMA [C] system("*comando*") e linux

Pubblicità

Lam

Utente Èlite
Messaggi
2,354
Reazioni
290
Punteggio
61
Seguendo una serie di tutorial sul C,sono capitato su un esercizio(guidato,sulle strutture dati),dove viene usata la libreria "system", ma su windows
Da linux, scrivere
C:
system("PAUSE");
e
C:
system("CLS");

non dà risultati(in runtime restituisce"CLS not found").essendo questi comandi DOS,ho provato con i corrispettivi comandi bash,senza risultato( il comando read non ha risultati,e la sintassi estesa viene riconosciuta come errore di sintassi)
 
Sto provando a cercare alternative,ad esempio getchar() al posto di pause e printf("\e[1;1H\e[2J"); al posto di cls...
 
Per fare una pausa puoi usare cin.get() o getchar() (che non dipendono dal sistema operativo quindi le puoi usare sempre)
Codice:
    cin.get();
    // oppure getchar();

In Unix c'e' il comando "clear" quindi puoi usare
Codice:
    std::system ("clear");
che e' veramente poco elegante (ok, hai capito che odio system, perche' fa partire un altro processo)
Quello che hai provato non funziona perche' usi printf (che scrive in maniera formattata), prova invece a usare "write"
Codice:
    write(1,"\E[H\E[2J",7);

Buona fortuna :)
 
Occhio al case dei comandi. In Unix maiuscole e minuscole sono differenti. Il comando non è PAUSE ma pause. CLS non esiste ed esiste invece clear.
 
Pubblicità
Pubblicità
Indietro
Top