92 votes

Convertir un int en caractère ASCII

J'ai

et je veux

par conversion. Un moyen simple de suggérer?

MODIFIER : aussi j’ai besoin de générer un nombre aléatoire, et convertir en un char, puis ajouter un '.txt' et y accéder dans un ifstream.

15voto

Nathan S. Points 3306

Juste pour info, si vous voulez plus de nombres à un seul chiffre, vous pouvez utiliser sprintf:

Ensuite, le premier chiffre est dans un char à txt[0], et ainsi de suite.

(Il s’agit de l’approche C, pas de l’approche C++. La méthode C++ serait d’utiliser des chaînes.)

5voto

Dorato Points 61

C’est ainsi que j’ai converti un nombre en code ASCII. 0 à 9 dans le code hexadécimal est 0x30-0x39. 6 serait 0x36.

cela vous donnera la valeur ASCII pour 6. Vous faites la même chose pour 0 - 9

pour convertir ASCII en une valeur numérique, j’ai inventé ce code.

4voto

Ma façon de faire ce travail est :

 char to int
char var;
cout<<(int)var-48;
    
int to char
int var;
cout<<(char)(var|48);

Et j'écris ces fonctions pour les conversions :

 int char2int(char *szBroj){
    int counter=0;
    int results=0;
    while(1){
        if(szBroj[counter]=='\0'){
            break;
        }else{
            results*=10;
            results+=(int)szBroj[counter]-48;
            counter++;
        }
    }
    return results;
}

char * int2char(int iNumber){
    int iNumbersCount=0;
    int iTmpNum=iNumber;
    while(iTmpNum){
        iTmpNum/=10;
        iNumbersCount++;
    }
    char *buffer=new char[iNumbersCount+1];
    for(int i=iNumbersCount-1;i>=0;i--){
        buffer[i]=(char)((iNumber%10)|48);
        iNumber/=10;
    }
    buffer[iNumbersCount]='\0';
    return buffer;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X