CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

petite question c++ char

ChipsCrevet
ChipsCrevet
Niveau 9
08 juin 2014 à 15:59:26

J'ai commencé le c++ et j'ai des exercices à faire:
genre ici, entrer un long et faire une fonction qui va mettre ce nombre dans un string.

string int2str (long num){
int n = 1;
while(num/n >=10)
n*=10;

string resultat ="";
while(n>=1){
int temp = num/n;
char s;
s =(char)(temp+'0'); // pourquoi ici faut mettre un +'0' ?
num-=temp*n;
resultat+=s;
n/=10;
}

return resultat;
}

si je met pas ce +'0' cela ne fonctionne pas,
merci d'avance

LEpigeon-888
LEpigeon-888
Niveau 12
08 juin 2014 à 16:58:33

Parce que le caractère '0' ne vaut pas l'entier '0' http://www.asciitable.com/ .

ChipsCrevet
ChipsCrevet
Niveau 9
08 juin 2014 à 17:15:28

Je comprends toujours pas, le caractère 0 vaut null, mais pourquoi additionner un null à un int et transformez tout ça en char :question:

LEpigeon-888
LEpigeon-888
Niveau 12
08 juin 2014 à 17:19:46

"caractère 0 vaut null"

Regarde le lien que j'ai posté plus haut, c'est pas le cas.

ChipsCrevet
ChipsCrevet
Niveau 9
08 juin 2014 à 17:26:33

48? je vois toujours pas

Pseudo supprimé
Pseudo supprimé 08 juin 2014 à 23:09:32

C'est pourtant simple, le code ASCII de '0' est 48, celui de '1' est 49, comme celui de 'A' est 65 si mes souvenirs sont bons. Donc 48+ 0 = 48, si on traite ce nombre comme un char, ça donnera '0', si on rajoute 1, ça fera le caractère de code 48+1 donc '1' etc. Tu vois ?

FortCommeMeric
FortCommeMeric
Niveau 10
08 juin 2014 à 23:42:53

Les chiffres sont rangés dans l'ordre croissant dans le code ASCII donc '0' + tmp représente le chiffre tmp

Ace_Attorney
Ace_Attorney
Niveau 10
09 juin 2014 à 17:40:40

Sinon, quelque chose qui n'a pas grand chose à voir, mais il existe des solutions beaucoup plus élégantes pour convertir un int en string.

LEpigeon-888
LEpigeon-888
Niveau 12
09 juin 2014 à 18:48:44

Sauf que c'est un exercice, j'imagine que le but c'est pas d'utiliser des trucs tout fait du C++.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment