PDA

View Full Version : [problema] C++


SalvoSalvino
10-12-2011, 14:11
Hola ragazzi, ho due domande:
1) La funzione [system("cls");] funge anche su altri SO oltre al windows? Se no, c'è una funzione alternativa che pulisce lo schermo e che funziona su tutti i SO?

2) C'è un'alternativa alla funzione [system ("pause");] visto che questa è riconosciuta solo da windows?
Io uso dev, ma ne vorrei una che funzionasse anche con altri programmi. Di conseguenza [getch(); o getchar();] non vanno bene!

starfred
11-12-2011, 09:37
La system, detta in maniera mooooolto grezza, esegue un comando sul "terminale". Quindi è difficilmente "portabile". Puoi utilizzare Conio.h ma non è std oppure puoi utilizzare vari ifdef per definire i vari OS.
#ifdef _WIN
const char* pulisci = "cls";
#elseif
#ifdef ...
.....
system(pulisci);




Per la getch() invece il discorso è un po' più complicato e ti consiglio di dare un'occhiata quì dove è già stato discusso il problema:

http://www.hwupgrade.it/forum/showthread.php?t=1313317&page=2

Io personalmente uso

int ch = 0; while((ch = getc(stdin)) != EOF && ch != '\n');
scanf("%[^\n]",messaggio);