View Full Version : [C++]Programma codice ASCII
TheBestNapoli
20-04-2011, 17:44
Salve a tutti, devo sviluppare un programma che effettua l'input del codice ASCII e visualizza il carattere corrispondente. Poi devo modificare il programma in modo che generi tutti i possibili codici a tre cifre dell'intervallo 000-255 e tenta di visualizzare il carattere corrispondente.
Potreste indicarmi in particolare cosa dovrei fare? Non credo debba fare semplicemente così:
cout<<"Inserire un numero: ";
cin>>c;
cout<<"Nella tabella ASCI corrisponde a: "<<(char)c;
e poi come si generano tutti i possibili codici dell'intervallo 000-255?
Mi dareste qualche indicazione? Grazie mille.
TheBestNapoli
21-04-2011, 19:26
nessuno può aiutarmi?
:.Blizzard.:
21-04-2011, 19:56
Non ho capito una cosa importante, ovvero se puoi memorizzarti da qualche parte la tabella ASCII.
Se sì, allora procederei così:
Crei un array di 256 elementi e ci memorizzi dentro la tabella ASCII.
Poi puoi fare all'utente la possibilità di inserire il codice ASCII o tramite codifica decimale, e in quel caso basta restituire l'elemento Array[scelta_utente].
Se invece lo mette in binario, te lo riconverti in decimale e procedi come prima.
Puoi chiarire meglio cosa intendi per generare i codici a 3 cifre compresi tra 0 e 255, magari con un esempio?
il codice ascii, comunque, prevede 128 caratteri, non 256
:.Blizzard.:
21-04-2011, 20:20
Vabbè, credo sia scontato che si riferisca all'esteso considerando che parla di intervallo fino a 255.
tomminno
21-04-2011, 22:03
Vabbè, credo sia scontato che si riferisca all'esteso considerando che parla di intervallo fino a 255.
Peccato che non esista una estensione univoca del set ASCII.
A seconda della impostazione di locale i valori oltre 128 vengono associati a caratteri differenti.
:.Blizzard.:
22-04-2011, 00:16
Ammazza oh quanti problemi .. :D
Solo io l'ho inteso come un esercizio e niente più ?
Vabbè ... aspettiamo notizie da TheBest ...
Per la 2° richiesta è sufficiente un for da 1 a < 256, e dentro ci fai un putchar( variabile_contatore_del_for).
Sarebbe:
for(int i=0; i < 256; i++){
putchar(i);
cout << endl;
}
Dovrebbe andare.
Perseverance
22-04-2011, 09:45
Quanta bruttura di codice che leggo! :muro:
#include "iostream"
using namespace std;
int main()
{
//Echo decimale->char
int ascii_decimale;
cout << "Valore decimale:" << endl;
cin >> ascii_decimale;
cout << "Carattere = " << (char)ascii_decimale << endl;
//Tabella ascii a 256
for(int i=0; i<256; i++)
cout << (char)i << endl;
system("pause");
return 0;
}
Fai attenzione xò dovresti gestire i casi eccezionali della tabella ascii sennò ti si mette a bippare il computer se non gli và bene quando stampi i primi 31 caratteri "speciali"
tomminno
22-04-2011, 15:20
Per la 2° richiesta è sufficiente un for da 1 a < 256, e dentro ci fai un putchar( variabile_contatore_del_for).
Sarebbe:
for(int i=0; i < 256; i++){
putchar(i);
cout << endl;
}
Dovrebbe andare.
Era un esercizio marcatamente scolastico, non si dovrebbero fornire le soluzioni.
E poi che roba è putchar seguito da cout << endl?
Perseverance
22-04-2011, 20:37
putchar è una funzione a me sconosciuta, ENDL significa "end line" e manda a capo la riga e flusha anche il buffer se non erro, simile al \n
credo si riferisse al mischiare stdio e iostream per stampare sullo standard output
Perseverance
23-04-2011, 13:06
http://www.cplusplus.com/reference/iostream/manipulators/endl/
Diciamo che si usa più per bellezza che per utilità, 99/100 dei casi è come usare "\n", a nessuno importa di flushare il buffer se non ci sono errori o altri problemi che vanno gestiti.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.