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 :

convertir integer en string


Sujet :

C

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut convertir integer en string
    bonjours,

    j'ai un entier compris entre 0 et 4095
    => comment faire pour le convertir en une chaine de caractère qui fasse toujours 4 caractères ?

    ex : 1 => "0001"

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Emcy
    bonjours,

    j'ai un entier compris entre 0 et 4095
    => comment faire pour le convertir en une chaine de caractère qui fasse toujours 4 caractères ?

    ex : 1 => "0001"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(chaine, "%04d", nb);
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf((char*)&chaine_debug, "%04d", TabVLAN_Filter[myRow].ID);
    => j'ai le message d'avertissement :
    type qualifier mismatch in assignment
    les définitions des variables sont :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    extern char chaine_debug[70]; // variable global
     
    static unsigned char myRow; // variable locale
     
    // ******** structure VLAN Filter ********************
     
    typedef struct _StructA
    {
    	unsigned int Enb:1;
    	unsigned int Member:5;
    	unsigned int NU:2; // bits non utilisés
    } StructA;
     
    typedef struct _StructB
    {
    	unsigned int Priority:3;
    	unsigned int Tagged:5;
    } StructB;
     
     
    typedef struct _StructVLAN
    {
    	unsigned int ID;
    	StructA A;
    	StructB B;
    } StructVLAN;
     
    extern StructVLAN TabVLAN_Filter[16]; // variable global
    // ***************************************************

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(chaine_debug, "%04d", TabVLAN_Filter[myRow].ID);
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    c'est vrai que j'ai fait une erruer sur ce point mais j'ai toujours le meme message d'erreur...

  7. #7
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par souviron34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(chaine_debug, "%04d", TabVLAN_Filter[myRow].ID);
    Le & devant un nom de tableau n'est pas utilisé normalement, cependant ce n'est pas une erreur et &a signifie a si a est un tableau.

  8. #8
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par Emcy
    c'est vrai que j'ai fait une erruer sur ce point mais j'ai toujours le meme message d'erreur...
    Etes-vous bien sûr que l'erreur est sur cette ligne, car il n'y a pas vraiment d'assignment explicite sur cette ligne.

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    lorsque je mets lal igne en commentaire, je n'ai plus d'erreur.

    Remarque : je programme sur un petit micro-controlleur (PIC18F)

  10. #10
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(chaine_debug, "%04u", TabVLAN_Filter[myRow].ID);
    ... mais je doute que ça change grand chose

  11. #11
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    ça ne change rien au message d'erreur...

  12. #12
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par Emcy
    lorsque je mets lal igne en commentaire, je n'ai plus d'erreur.

    Remarque : je programme sur un petit micro-controlleur (PIC18F)
    Je suis désolé, je ne vois pas d'erreur sur cette ligne.

  13. #13
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    sinon vous ne savez pas comment faire une fonction qui fait la transformation que je recherche ?

  14. #14
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par Emcy
    sinon vous ne savez pas comment faire une fonction qui fait la transformation que je recherche ?
    Normalement, sprintf() doit fonctionner sur toute implémentation standard. Sinon, il vous reste toujours itoa() (<stdlib.h>).

  15. #15
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par stephl
    Normalement, sprintf() doit fonctionner sur toute implémentation standard.
    Pas forcément sur des systèmes avec des micro-controlleur et peu de mémoire.

    Il est souvent nécessaire de choisir le modèle de mèmoire correct.

    Emcy: Quel modèle de mémoire as-tu choisi pour la compilation de ton programme?
    Bien le bonjour chez vous
    Jowo

  16. #16
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    c'est quoi un modèle de memoire ? je n'en ai jamais entendu parlé ...

    finalement, j'ai touvé :

    donc j'ai :
    - Code Model : Small Code Model (<=64K bytes)
    - Data Model : Large Data Model (all RAM Bank)
    - Stack Model : Single-bank model

    remarque : itoa fonctionne...

  17. #17
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Je ne suis pas un gourou dans des "petits systèmes".

    Mais j'ai remarqué que certaines fonctions standard comme printf, sprintf et autres ne fonctionnent que sous certaines modèles de mémoire.

    Il faut lire la documentation de ton compilateur et de ton système.
    Bien le bonjour chez vous
    Jowo

  18. #18
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    d'accord, je vais regarder ça de plus près...

  19. #19
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par Emcy
    remarque : itoa fonctionne...
    Alors utilisez itoa() qui est spécifique aux conversions entier -> chaîne, plutôt que sprintf() qui est un arsenal bien lourd pour cette simple conversion.

  20. #20
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    et comment fait-on pour insérer des 0 (vu que je veux qu'il y ai toujour 4 chiffres d'affichés)

    j'ai utilisé cette methode (pas encore testée) : n'est-elle pas un peu lourde ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    itoa(TabVLAN_Filter[myRow].ID, StringTemp);
     
    		j = 4;
    		k=0;
    		while (StringTemp[j]!='\0')
    		{
    			chaine_debug[k++] = '0';
    		}
     
    		l = 0;
    		for ( j = k; j < 5; j++ ){
    			chaine_debug[j] = StringTemp[l++];
    		}

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. Convertir un type String en Integer VB-A
    Par sebeni dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/05/2007, 17h18
  2. [VBScript] Convertir date en string
    Par rabi dans le forum VBScript
    Réponses: 4
    Dernier message: 26/12/2005, 12h26
  3. [jar] convertir URL en String
    Par c-top dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/11/2004, 12h19
  4. Integer ou string dans une DBGRID
    Par Yepazix dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/08/2004, 14h42
  5. Réponses: 6
    Dernier message: 14/02/2004, 15h01

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