Programmi C / C++ - prof. Claudio Maccherani - Perugia - 2008
UTILITY Varie
(colori, posizionamento cursore, codici Ascii, lettere accentate, riquadri, ... )
// Utility.cpp - Colori, GoToRC, codici ASCII - Claudio Maccherani 2018 #include
#include
#include
// per le stringhe() #include
// per getch() using namespace std; // "HANDLE" - per la gestione dei colori con "SetConsoleTextAttribute (hCon, N);", N da 0 a 255 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); // "gotorc()" - per posizionamento cursore con "gotorc(R,C)", R da 1 a 25, C da 1 a 80 void gotorc(int r, int c) { COORD pos ={c,r}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void Colori() { // elenco possibili Colori primo piano e sfondo SetConsoleTextAttribute (hCon, 240); system("cls"); // nero su sfondo bianco gotorc(2,35); cout << "COLORI\n"; for (int i=0; i<256; i++) { if (i % 16 == 0) cout<<"\n"; SetConsoleTextAttribute (hCon, i); // setta il colore "i" if (i<10) cout << " " << i << " "; else if (i<100) cout << " " << i << " "; else cout << " " << i << " "; } SetConsoleTextAttribute (hCon, 7); // rimette lo standard b/n del C++ SetConsoleTextAttribute (hCon, 240); // setta il colore "nero/bianco" cout << "\n\n"; getch(); return; } void Codici_Ascii() { // elenco Codici ASCII e relativi Caratteri SetConsoleTextAttribute (hCon, 240); system("cls"); cout << "\n Codici ASCII e relativi Carateri \n\n\n"; for (int i=0; i<128; i++) { cout << i << " " << char(i) << "\t"; } cout << "\n\n"; for (int i=128; i<256; i++) { cout << i << " " << char(i) << "\t"; } cout << "\n\n"; getch(); return; } void Lettere_accentate() { // lettere accentate SetConsoleTextAttribute (hCon, 176); system("cls"); cout << "\n Lettere ACCENTATE \n\n"; cout << " Le lettere accentate si possono riprodurre tramite il CODICE ASCII\n\n"; cout << " Ad esempio, char(65) da il carattere 'A'\n\n"; cout << " " << char(133) << " 133 " << char(183) << " 183\n"; cout << " " << char(138) << " 138 " << char(212) << " 212\n"; cout << " " << char(130) << " 130 " << char(144) << " 144\n"; cout << " " << char(141) << " 141 " << char(222) << " 222\n"; cout << " " << char(149) << " 149 " << char(227) << " 227\n"; cout << " " << char(151) << " 151 " << char(235) << " 235\n"; cout << "\n\n"; getch(); return; } void Riquadro(int r,int c) { // NB: "string(60,char(ascii))" spezza a 40 molti dei codici ascii > 127, // stessa cosa con il "cout" // for(int i=32; i<256; i++) { cout << i << " - " << string(60,char(i)) << "\n"; } string linea = string(33,char(196)); int i; i = r; gotorc(i,c); cout << char(218) << linea << char(191); i = i+1; gotorc(i,c); cout << char(179); gotorc(i,c+34); cout << char(179); i = i+1; gotorc(i,c); cout << char(179); gotorc(i,c+34); cout << char(179); i = i+1; gotorc(i,c); cout << char(195) << linea << char(180); for (i=i+1; i<18;i++) { gotorc(i,c); cout << char(179); gotorc(i,c+34); cout << char(179); } gotorc(i,c); cout << char(195) << linea << char(180); i = i+1; gotorc(i,c); cout << char(179); gotorc(i,c+34); cout << char(179); i = i+1; gotorc(i,c); cout << char(192) << linea << char(217); return; } int main() { int scelta,i,tab=12; do { SetConsoleTextAttribute (hCon, 159); system("cls"); Riquadro(1,10); i = 2; gotorc(i,tab); cout << " UTILITY Varie"; i = i+1; gotorc(i,tab); cout << " Claudio Maccherani, 2018"; i = i+3; gotorc(i,tab); cout << "1 - COLORI"; i = i+2; gotorc(i,tab); cout << "2 - Codici ASCII"; i = i+2; gotorc(i,tab); cout << "3 - Lettere accentate"; i = i+2; gotorc(i,tab); cout << "4 - ..."; i = i+2; gotorc(i,tab); cout << "5 - ..."; i = i+2; gotorc(i,tab); cout << "6 - ..."; i = i+3; gotorc(i,tab); cout << " scegli [0=fine] "; cin >> scelta; switch (scelta) { case 1: Colori(); break; case 2: Codici_Ascii(); break; case 3: Lettere_accentate(); break; } } while (scelta != 0); return 0; }