IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Passage d'un entier en héxadécimal


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut Passage d'un entier en héxadécimal
    Bonjour,

    J'ai besoin de convertir un entier stocké dans un int en nombre héxadécimal, et d'enregistrer cette valeur dans un fichier.

    J'ai vu qu'il existait une fonction hex() permettant de faire la conversion, mais j'obtiens l'erreur suivante :

    1>c:\documents and settings\sylvain\bureau\pair\projet\cryptagecle\cryptagecle\ajoutacces.cpp(132) : error C2664: 'std::hex' : impossible de convertir le paramètre 1 de 'int' en 'std::ios_base &'
    Mon code est le suivant (pas bien compliqué) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    int code=12456789.
    std::string fichierSignet = "H:/USBlock.txt";	//Déclaration du chemin vers le fichier
    std::ofstream fichier(fichierSignet.c_str(), std::ios::trunc);
    if ( !fichier ){
    	  MessageBox(_T("Erreur de création du fichier"));
     
    	}
    	else
    	{
    		//Ecriture du fichier
    		fichier << hex(code) << std::endl;
    		fichier.close();
    		MessageBox(_T("Fichier d'accès créé avec succès"));
    	}
    Quelqu'un sait ce qu'est le paramètre std::ios_base & ?
    Comment caster un int en std::ios_base & ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Déjà, il faut savoir qu'une phrase du genre de
    je veux convertir (un type primitif) en hexadécimal
    n'a aucun sens à proprement parler...

    En effet, si on entre dans les tréfonds de l'ordinateur, on se rend compte que TOUT est codé... en binaire, et que seule la représentation que l'on en fait est susceptible de changer.

    Parmis les représentations que l'on peut en faire, on trouve les différentes bases (binaire, octal, décimal, hexadécimal) et certaines conventions d'affichage (notation scientifique ou non pour les réels, sous forme de caractères ou non, ...), mais, ce n'est en tout cas jamais qu'une convention de représentation

    Pour le reste, ton problème vient simplement d'un mauvais usage de std::hex (inclusion de <iomanip> nécessaire):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int code=12456789;
    std::string fichierSignet = "H:/USBlock.txt";	//Déclaration du chemin vers le fichier
    std::ofstream fichier(fichierSignet.c_str(), std::ios::trunc);
    if ( !fichier ){
    	  MessageBox(_T("Erreur de création du fichier"));
     
    	}
    	else
    	{
    		//Ecriture du fichier
    		fichier << std::hex<<code << std::endl;
    		fichier.close();
    		MessageBox(_T("Fichier d'accès créé avec succès"));
    	}
    Tu trouveras des exemples sur le formatage des flux et bien d'autres choses encore sur la page de la FAQ dédiés aux flux standards
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut
    Merci, ça marche très bien maintenant.

    Sinon, je me suis mal expliqué, je sais bien sur que tout est stocké en binaire dans un PC, mais je voulais pouvoir afficher ça autrement qu'en décimal.

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage d'argument entier
    Par bruno_nono dans le forum Langage
    Réponses: 9
    Dernier message: 13/10/2010, 10h40
  2. Passage d'un entier dans un stream
    Par wizzy dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 19/02/2009, 23h30
  3. passage d'un entier d'une page a une autre avec jsp
    Par MSM_007 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/08/2006, 09h18
  4. [servlet] passage parametre entier
    Par cmoa59 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/03/2005, 10h03
  5. [debutant][jsp]Passage d'entier avec une session sans cookie
    Par o151181 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/02/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo