Ciao Ragazzi, sono un nuovo coder attempato alle prime armi
Prima di tutto saluto tutta la comunità e vi auguro una buona giornata.
Adesso vengo al dunque e mi scuso per la lungaggine
Mi sto cimentando da poco con il C++, ho comprato alcuni libri che sto leggendo assiduamente e facendo un po di
esercizi e test vari, mi sono reso conto di alcune limitazioni nel visualizzare dei valori a video, praticamente non
riuscivo a ritornare sulle righe precedenti per poter visualizzare un valore in un determinato punto nella finestra terminale, tipo in alto a destra o al centro dello schermo per fare un esempio.
Cosi mi sono armato di google e bing e ho scoperto un piccolo mondo :
i VT100 ESCAPE CODES
grazie ad essi ho risolto il problema di poter visualizzare una stringa ovunque nella finestra del terminale e moltissime altre cose,
come il cambio colore, sfondo, formattazione del testo e cosi via.
ma ieri per un puro caso mi sono reso conto che tutto il lavoro che ho fatto in un piccolo programmino di prova, ricopiato in un altro, non funzionava piu.
Andando ad esclusione ho scoperto che se non uso il comando :
system ("cls");
prima degli escape codes, questi ultimi non funzionano.
Adesso, per reperire le informazioni sugli escape codes ho fatto riferimento a diversi siti, alcuni riguardavano C altri ADA, poi con varie prove sono riuscito ad utilizzarli sul C++, ma su nessuno di questi siti ho trovato informazioni riguardanti l'utilizzo del comando CLS prima dei codici ESCAPE.
Ora la mia domanda e' la seguente, qualcuno di voi ha qualche sito o qualche informazione su questa cosa ?
Il comando CLS sicuramente cancella lo schermo e riporta il cursore in alto a destra nella finestra del terminale.
Ma quasi sicuramente in questo caso attiva qualche altra cosa, non so una modalità particolare o effettua un reset su
qualche altro parametro.
In parole povere mi piacerebbe saperne di piu', magari con il vostro aiuto riesco a togliermi questa pulce dall'orecchio.
Vi ringrazio e vi auguro una buona giornata.
P.S.
questo e' il piccolo codice che sto usando per fare dei test :
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <windows.h>
int main()
{
system("cls"); // SE ELIMINO QUESTA RIGA I CODICI ESCAPE NON FUNZIONANO :(
printf ("\033[15;50H"); // Coordinate riga-colonna della finestra terminale.
printf ("\033[2K"); // Cancellazione della sola riga corrente.
printf ("\033[94m"); // Colore carattere blu chiaro.
cout << "TEST VT100 ESCAPE CODES";
Sleep(3000); // Attesa di 3 secondi
printf ("\033[0m"); // Reset dei valori colori allo stato originale.
return (0);
}