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 :

convertion chaine int / int chaine


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Par défaut convertion chaine int / int chaine
    Bonsoir,

    je voudrait savoir comment convertir une chaine en int et un int en char.
    plus precisement comment je dois rédiger cela :

    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
    30
    31
    32
    33
     
     
     
    fseek(F, -2, SEEK_END);
    caractereActuel = fgetc(F);
    FF = caractereActuel * 10;
     
    fseek(F, -1, SEEK_END);
    caractereActuel = fgetc(F);
    m3 = caractereActuel + FF;
     
     
    somme =((((m2 * 60 ) + ( h2 )) - ((m1 * 60 ) + ( h1 ))) + (((m4 * 60 ) + ( h4 )) - ((m3 * 60 ) + ( h3 ))));
     
     
    sprintf(s2,"%s",somme);
    fclose(F);
     
    enregistrement(s2);
     
    }
     
    void enregistrement(sLabel)
    {
     
    FILE* F = fopen("compta.html","r+");
    fseek(F, -27, SEEK_END);
    fprintf(F,"<td><FONT COLOR=#0000FF>%s</FONT></td>", sLabel);
    fprintf(F,"</tr></table></body></html>");
     
    fclose(F);
     
    }
    C'est surtout la syntaxe au niveau des aviable %s ou %ld ou %c ainsi que la convertion de ma somme en char pour lenvoyer a enregistre() pour l'enregistrer dans un fichier html^^

    en claire je récupere des valeur enregistrer dans du texte et je veux effectuer un calcule avec, puis convertir le resultat en char pour l'enregistrer dans un fichier .html.



    merci!

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    chaine vers int: strtol()
    int vers chaine: sprintf()

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Par défaut
    Edit : Je me susi tres mal exprimer

    en faite je veut manipuler la valeur que represente ma variable caractereActuel pour le multiplier par 10.
    Mais!! pas sa valeur reel dans l'int mais par exemple
    mon int = 49 (donc 4 en char je crois...) pour multiplier par 10 mais pas 49 mais bien le 4.donc 4*10 et apres mettre en Char 400 et obtenir le char "400" et non pas l'equivalent en ascii (je crois)
    a moins que l'on puisse faire des calcule avec des char...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Salut,
    Je crois que ce que tu cherches c'est bien ce que DaZumba t'as donné: int sprintf ( char * str, const char * format, ... );
    http://www.cplusplus.com/reference/c...o/sprintf.html

    L'exemple du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* sprintf example */
    #include <stdio.h>
     
    int main ()
    {
      char buffer [50];
      int n, a=5, b=3;
      n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
      printf ("[%s] is a %d char long string\n",buffer,n);
      return 0;
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Par défaut
    Ah ca deja c'est parfait pour moi, mais j'ai editer mon message pour faire quelque chose de precis :

    Je me suis tres mal exprimer

    en faite je veut manipuler la valeur que represente ma variable caractereActuel pour le multiplier par 10.
    Mais!! pas sa valeur reel dans l'int mais par exemple
    mon int = 49 (donc 4 en char je crois...) pour multiplier par 10 mais pas 49 mais bien le 4.donc 4*10 et apres mettre en Char 400 et obtenir le char "400" et non pas l'equivalent en ascii (je crois)
    a moins que l'on puisse faire des calcule avec des char..

  6. #6
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Un char est un "int" qui représente sa valeur ASCII.

    Exemple

    char a = 'a';

    Tu peux très bien faire :

    a = a+1;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("Char %c, ASCII %i", a, a);
    Pour faire ce que tu veux, tu peux convertir ton int (enfin sa valeur ASCII) en string:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sprintf(val, "%c", ton_int);
    Et le reconvertir en int avec "atoi()"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int c;
    c = atoi(val);

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Par défaut
    ok merci^^

    mais bon maintenant je bloque pour Enregsitrer dans mon *.html mon int.

    Faut que je le convertisse en caractere mais je veut pas sa correspondance ASCII mais sa veleur comme tel
    donc int valeur = 4784
    char result ="4784"

    jai esseyais comme ca ca amrche pas ://

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    somme =((m2 / 60 ) + ( h2 )) - ((m1 / 60 ) + ( h1 )) + ((m3 / 60 ) + ( h3 ));
     
    /*            (((m4 / 60 ) + ( h4 )) -              */
    fclose(F);
     
     
    sprintf(buf,"%s",somme);
     
    FILE* htmlF = fopen("kk.txt","r+");
    fseek(htmlF, 0, SEEK_END);
    fprintf(htmlF,"%c\n", buf);
     
    fclose(htmlF);
    quesqui marche pas?

  8. #8
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    1. Tu ne vérifies pas que tu as bien ouvert le fichier
    2. Tu peux utiliser "a+" au lieu de "r+" et enlever le fseek
    3. le format "%c" est char et non string "%s"
    4. Tu dis "char result ="4784"" tu ne veux pas plutot dire char *result = "4784"

    Faut que je le convertisse en caractere mais je veut pas sa correspondance ASCII mais sa veleur comme tel
    Oui donc sprintf avec %i ? (Comme te l'on indiqué plusieurs personne plus haut)


    Tu devrais revoir toutes les bases avant d'essayer de faire se genre de chose...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 13
    Par défaut
    Edit : merci a tous je crois que je devrais bientot avori fini mon ptti logiciel d'entrainement!

    et oui je suis pas douer mais je me force a faire un minimum pour apprendre, et retenir de mes erreur!

    merci encore a tous!!!

  10. #10
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par |PaRa-BoL Voir le message
    Un char est un "int" qui représente sa valeur ASCII.
    Si le jeu de caractères utilisé par la machine est l'ASCII.

  11. #11
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Citation Envoyé par DaZumba Voir le message
    Si le jeu de caractères utilisé par la machine est l'ASCII.
    Je ne pense pas qu'il développe ca sur le microcontroleur de son lecteur MP3

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/03/2014, 21h50
  2. [caml light] ( int -> int ) -> int
    Par ylarvor dans le forum Caml
    Réponses: 5
    Dernier message: 26/11/2009, 19h35
  3. conversion de int en chaine
    Par Midou dans le forum MFC
    Réponses: 4
    Dernier message: 19/02/2006, 14h15
  4. [VB.NET] Convert chaine hexa -> int
    Par Tempotpo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2005, 08h53
  5. Réponses: 2
    Dernier message: 01/07/2004, 11h36

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