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 :

[Microsoft Specific] Conversion __int64 -> String


Sujet :

C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut [Microsoft Specific] Conversion __int64 -> String
    hello à tous ....
    j'utilise une conversion fournit ici ( http://www.codeproject.com/cpp/Preci...eciseTimer.zip test.cpp)

    Mais j'obtiens une erreur d'execution au moment ou j'aimerais passer cette string dans un printf, sprintf ou autre fonction de sortie.

    PS : pas de problème avec cout !

    Si qqun est un chef des conversions et qu il a du temps....
    merci d'avance...
    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
    34
    string Int64ToString(__int64 const& ri64, int iRadix=10)
    {
    	bool bNeg = (ri64 < 0);
    	__int64 i64 = ri64;
    	string ostrRes;
    	bool bSpecial = false;
    	if(true == bNeg)
    	{
    		i64 = -i64;
    		if(i64 < 0)
    			//Special case number -9223372036854775808 or 0x8000000000000000
    			bSpecial = true;
    		ostrRes.append(1, '-');
    	}
    	int iR;
    	do
    	{
    		iR = i64 % iRadix;
    		if(true == bSpecial)
    			iR = -iR;
    		if(iR < 10)
    			ostrRes.append(1, '0' + iR);
    		else
    			ostrRes.append(1, 'A' + iR - 10);
    		i64 /= iRadix;
    	}
    	while(i64 != 0);
    	//Reverse the string
    	string::iterator it = ostrRes.begin();
    	if(bNeg)
    		it++;
    	reverse(it, ostrRes.end());
    	return ostrRes;
    }
    Pour les details, cherche tout seul !

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut Re: [Microsoft Specific] Conversion __int64 -> String
    Citation Envoyé par ZaaN
    Mais j'obtiens une erreur d'execution au moment ou j'aimerais passer cette string dans un printf, sprintf ou autre fonction de sortie.
    Alors montre nous plutôt le code correspondant à ça

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    FILE *l_debugOutput;
    l_debugOutput = fopen( ".\\output\\IterationResult.txt", "w" );
    ...
     
    fprintf(l_debugOutput,"Elapsed time : %s mus\n",Int64ToString(l_IterationTimer.GetTime()));
     
    ...
    fclose( l_debugOutput );
    ca a toujours marché avant cette conversion
    Pour les details, cherche tout seul !

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    "%s" c'est pour les char *, or ici tu as une string.
    http://c.developpez.com/faq/cpp/?pag...TRINGS_to_char
    Avec les fichiers C++ (car FILE* c'est du C) tu n'aurais pas eu cette erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    std::ofstream l_debugOutput( ".\\output\\IterationResult.txt" ); 
    ... 
     
    l_debugOutput << "Elapsed time : " << Int64ToString(l_IterationTimer.GetTime()) << " mus\n";

  5. #5
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    As tu essayé de passer tonString.c_str() pour avoir un char* au lieu d'un string dans le fprintf ?

    je sais pas du tout si ca va changer quelquechose mais perso je tenterais.

    XXiemeciel

    * zut grillé, j'Ecris trop lentement lol
    XXiemeciel

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    printf("%I64d", monEntier64Bits);

    Et pour un type entier qui est soit 32 soit 64 (comme un size_t) c'est %Iu, tout court.
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_printf_width_specification.asp
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. problème de conversion int[x] --> string
    Par poussinphp dans le forum SL & STL
    Réponses: 2
    Dernier message: 17/08/2005, 14h45
  2. Conversion d'un string en hexa
    Par marsupilami34 dans le forum Langage
    Réponses: 3
    Dernier message: 07/07/2005, 09h13
  3. [Débutant] Conversion d'un String en Int
    Par chleuh dans le forum Langage
    Réponses: 9
    Dernier message: 30/12/2004, 13h33
  4. [C#] Conversion d'un string en byte[] et inversement
    Par david71 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/12/2004, 15h10
  5. Réponses: 2
    Dernier message: 21/06/2004, 15h55

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