AFFICHER LE CODE ASCII EN MODE CONSOLE (DEVC++ 4.1)
glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 2016
-
17 avril 2004 à 19:33
cs_lol55
Messages postés86Date d'inscriptiondimanche 8 janvier 2006StatutMembreDernière intervention 5 décembre 2010
-
27 août 2006 à 23:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Ouai, on es sur CPPFRANCE mais je crois pas que l'admin allait acheter un domaine pour cpp un pour c et un pour cpp .net
Alors si tu regarde le titre du site (barre de titre ou à gauche) tu liras:
C / C++ / C++ .net
:)
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 11 mai 2004 à 18:03
On est pas sur cppfrance ?
Si, rassurez-moi donc disons que le C++ doit être privilégié !!!
Soit on crée l'algo, soit si l'on veux juste prendre au clavier un int (ou char, etc...) en représentation hexadécimal, ou bien alors afficher un nombre en représentation hexadécimal, y'a un truc qui fonctionne avec cout et cin dans la STL. Je me rappel plus trop, mais de mémoire, faut ecrire cout << hex << a << endl; ou bien cin >> hex >> a;
Je crois que ces choses sont définies dans iomanip (ou algorithm.h si tu utilises l'espace de noms standart) soit peut être dans iostream direct, mais ca m'étonnerais.
Si quelqu'un pouvait l'aider et donc moi aussi sur ce sujet, car ma mémoire ne dépasse pas les 1 ou 2 ko :-)
Sinon pour l'algo c'est pas difficile:
soit n le nombre à convertir et chaine la chaine de caractères résultante.
Dernier symbole de la chaine est n modulo 16 (enfin, l'équivalent en hexadécimal ie: E=14, etc...) (int mod = n%16)
ensuite, tu enleve ce modulo à n (n -= mod)
tu divises n par 16 (il est divisible par 16: n /= 16)
et tu répète. Donc, ton nombre se construit "à l'envers".
Pour aller dans l'autre sens, tu fais n= premier caractère
tant qu'il reste des caractères (de gauche à droite en partant du second) alors multiplier n par 16 et ajouter à n le nouveau symbole (son équivalent en décimal).
C'est pareil pour toutes les bases. Ca te suggère pas un petit programme sympa à faire ca ?
Entrer une base. Entrer un nombre (char*) dans cette base.
Entrer un base(de 2 à 36).
Votre nombre vaut XXX dans cette base.
cs_Mat06
Messages postés37Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention22 octobre 2004 19 avril 2004 à 13:09
Je suis en train de l'améliorer et je voudrais savoir comment on fait pour convertir un caractère en valeur hexadecimal ?
ouai enfin qd on apprend le C c'est souvent dans la vision d'apprendre le C++ alors les profs ne nous apprennent pas printf et préfère les bibliothèques C++ (cin et cout).
Le petit morceaux de code de Kirua était (presque) parfait. Tu dois avoir lu pas mal de bouquins sur la norme.
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 18 avril 2004 à 15:16
désolé pour avoir mis deux fois le commentaire .
Je pense que c'est mieux d'afficher un intervalle de lettres plutôt que une lettre sinon çà ne sert à rien :
typedef unsigned char byte;
using namespace std:
....
byte start,end;
cout<<"Veuillez entrer l'index du premier caractère à afficher"<<endl;
cin>>start;
cout<<"Veuillez entrer l'index du dernier caractère à afficher"<<endl;
cin>>end;
for(start=start;start!=end;start++){
cout<<"["<<(int)start<<"]=""<<(char)start<<""";
if(start%9!=0)
cout<<" ";
else
cout<<endl;
}
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 avril 2004 à 15:02
djil > merci pour la precision.
BruNews, Admin CS, MVP Visual C++
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 18 avril 2004 à 14:55
aucune importance, en c ou c++
mais c'est plus du c, alors autant oublier iostream.h et utiliser printf/scanf
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 avril 2004 à 14:44
djil > un peu comme Kirua, je ne vois pas bien ou tu veux en venir. Qu'une console(rie) soit en C ou C++, quelle importance ?
BruNews, Admin CS, MVP Visual C++
glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 20161 18 avril 2004 à 14:40
Bon voila... donc il reste plus qu'à modifier cette source, pour que quand on lui rentre un numero, elle retourne la lettre correspondante, ou sinon elle affiche la liste des lettres associée a leur numero... :)
Glipper
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 18 avril 2004 à 14:38
Salut,
perso, j'en ai fait un qui demande le caractère de début, celui de fin et il affiche tous ceux entre : c'est bien plus pratique . Je l'ai fait en c, pas besoin d'utiliser le c++ pour un simple prog comme celui ci .
De plus, l'intérêt de la table ascii, c'est aussi de savoir à quel numéro et associé quel caractère surtout pour les caarctères spéciaux .
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 avril 2004 à 14:35
on va pas se taper dessus, mais je comprends tjs pas l'objet de ta remarque ^^
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 18 avril 2004 à 11:02
Kirua ==> a part cin,cout et iostream.h(pas standard) et les commentaires "//" son programme ressemble plus a du c qu'a du c++ standard
avec des truc comme void slow(void)
sinon Stroustrup disait bien a l'epoque du c ansi qu'il s'agissait aussi de programme c++, mais c'etait a l'epoque ou le c++ n'etait pas normalisé
mast0209
Messages postés14Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention16 juin 2004 18 avril 2004 à 10:26
Merci, mat06, ces petites sources qui sont trés simple permettent aux débutants de progrésser. Alorsd merci de ton aide, ça vaut bien un joli 7/10!
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 18 avril 2004 à 08:49
Salut,
je voulais juste te dire qu'il existe la version 4.9.8.7 de Dev-Cpp alors tu peut mettre à jour .
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 avril 2004 à 01:56
Et puis surtout c'est faux ^^ C'est contrariant, mais le codage des caractères ne correspond pas au standard ASCII au delà des 128 premiers caractères (le jeu de caractères initial). La suite n'a pas été standardisée de manière unanime (qu'on me pende si je dis une bêtise).
Bon, pour reprendre, parce que là c'est pas compilable et puis c'est long:
#include
int main()
{
for (int i=0; i < 256; i++)
std::cout << (char)i << " " << i << std::endl;
return 0; //facultatif
}
une ligne de plus qu'un hello world ^^ rien de passionnant en effet, et c'est tjs faux.
djl, comprends pas ta remarque, si tu enlèves toutes les librairies C++ et que tu les remplaces par des librairies C, dans la mesure où il n'a utilisé que des structures de langage déjà existantes en C, évidemment que ça peut en être, mais il a utilisé la librairie standard C++, donc c'est du C++. c'est indiscutable non? ^^
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 17 avril 2004 à 21:45
a part cin,cout c'est du c, pas du c++
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 avril 2004 à 20:23
Salut,
faudrait quand meme qu'une source ait un quelconque interet, expliciter un point precis de prog.
Ici du 'cout' en boucle, quel interet ?
Pose nous un qqchose de mieux la prochaine fois, y a pas le feu.
BruNews, Admin CS, MVP Visual C++
petitchech
Messages postés114Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention28 juin 2004 17 avril 2004 à 19:36
salut
a lui de passer par la variable i incremente directement string
utilise plutot le forum pour sa car la source n'a pas trop d'interet.
glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 20161 17 avril 2004 à 19:33
Ben moi je trouve qu'il est sympas... :)
++ Glipper
27 août 2006 à 23:53
11 mai 2004 à 19:47
BruNews, Admin CS, MVP Visual C++
11 mai 2004 à 19:42
Alors si tu regarde le titre du site (barre de titre ou à gauche) tu liras:
C / C++ / C++ .net
:)
11 mai 2004 à 18:03
Si, rassurez-moi donc disons que le C++ doit être privilégié !!!
19 avril 2004 à 18:33
Je crois que ces choses sont définies dans iomanip (ou algorithm.h si tu utilises l'espace de noms standart) soit peut être dans iostream direct, mais ca m'étonnerais.
Si quelqu'un pouvait l'aider et donc moi aussi sur ce sujet, car ma mémoire ne dépasse pas les 1 ou 2 ko :-)
Sinon pour l'algo c'est pas difficile:
soit n le nombre à convertir et chaine la chaine de caractères résultante.
Dernier symbole de la chaine est n modulo 16 (enfin, l'équivalent en hexadécimal ie: E=14, etc...) (int mod = n%16)
ensuite, tu enleve ce modulo à n (n -= mod)
tu divises n par 16 (il est divisible par 16: n /= 16)
et tu répète. Donc, ton nombre se construit "à l'envers".
Pour aller dans l'autre sens, tu fais n= premier caractère
tant qu'il reste des caractères (de gauche à droite en partant du second) alors multiplier n par 16 et ajouter à n le nouveau symbole (son équivalent en décimal).
C'est pareil pour toutes les bases. Ca te suggère pas un petit programme sympa à faire ca ?
Entrer une base. Entrer un nombre (char*) dans cette base.
Entrer un base(de 2 à 36).
Votre nombre vaut XXX dans cette base.
19 avril 2004 à 13:09
19 avril 2004 à 11:34
Le petit morceaux de code de Kirua était (presque) parfait. Tu dois avoir lu pas mal de bouquins sur la norme.
18 avril 2004 à 15:16
Je pense que c'est mieux d'afficher un intervalle de lettres plutôt que une lettre sinon çà ne sert à rien :
typedef unsigned char byte;
using namespace std:
....
byte start,end;
cout<<"Veuillez entrer l'index du premier caractère à afficher"<<endl;
cin>>start;
cout<<"Veuillez entrer l'index du dernier caractère à afficher"<<endl;
cin>>end;
for(start=start;start!=end;start++){
cout<<"["<<(int)start<<"]=""<<(char)start<<""";
if(start%9!=0)
cout<<" ";
else
cout<<endl;
}
18 avril 2004 à 15:02
BruNews, Admin CS, MVP Visual C++
18 avril 2004 à 14:55
mais c'est plus du c, alors autant oublier iostream.h et utiliser printf/scanf
18 avril 2004 à 14:44
BruNews, Admin CS, MVP Visual C++
18 avril 2004 à 14:40
Glipper
18 avril 2004 à 14:38
perso, j'en ai fait un qui demande le caractère de début, celui de fin et il affiche tous ceux entre : c'est bien plus pratique . Je l'ai fait en c, pas besoin d'utiliser le c++ pour un simple prog comme celui ci .
De plus, l'intérêt de la table ascii, c'est aussi de savoir à quel numéro et associé quel caractère surtout pour les caarctères spéciaux .
18 avril 2004 à 14:35
18 avril 2004 à 11:02
avec des truc comme void slow(void)
sinon Stroustrup disait bien a l'epoque du c ansi qu'il s'agissait aussi de programme c++, mais c'etait a l'epoque ou le c++ n'etait pas normalisé
18 avril 2004 à 10:26
18 avril 2004 à 08:49
je voulais juste te dire qu'il existe la version 4.9.8.7 de Dev-Cpp alors tu peut mettre à jour .
18 avril 2004 à 01:56
Bon, pour reprendre, parce que là c'est pas compilable et puis c'est long:
#include
int main()
{
for (int i=0; i < 256; i++)
std::cout << (char)i << " " << i << std::endl;
return 0; //facultatif
}
une ligne de plus qu'un hello world ^^ rien de passionnant en effet, et c'est tjs faux.
djl, comprends pas ta remarque, si tu enlèves toutes les librairies C++ et que tu les remplaces par des librairies C, dans la mesure où il n'a utilisé que des structures de langage déjà existantes en C, évidemment que ça peut en être, mais il a utilisé la librairie standard C++, donc c'est du C++. c'est indiscutable non? ^^
17 avril 2004 à 21:45
17 avril 2004 à 20:23
faudrait quand meme qu'une source ait un quelconque interet, expliciter un point precis de prog.
Ici du 'cout' en boucle, quel interet ?
Pose nous un qqchose de mieux la prochaine fois, y a pas le feu.
BruNews, Admin CS, MVP Visual C++
17 avril 2004 à 19:36
a lui de passer par la variable i incremente directement string
utilise plutot le forum pour sa car la source n'a pas trop d'interet.
17 avril 2004 à 19:33
++ Glipper