Forum Clubic

[C] Conversion en chaine de caractère [résolu] - conversion from `size_t' to `const char*

Bonsoir à tous,

Je suis entrain d’essayer d’écrire certaines informations dans un fichier externe en C.

Seulement le compilateur me retourne cette erreur :

error: invalid conversion from `size_t' to `const char*'

Voici mon code :

 printf("\r%c %u,[%u/%u/%u],%u,%u | %u,%u  E:%u",
    LIVE_CHAR[m_live_idx],
    m_peers_count,
    BTCONTENT.pBF->Count(),
    BTCONTENT.pBF->NBits(),
    Pieces_I_Can_Get(),
    Self.RateDL(), Self.RateUL(),
    m_pre_dlrate.RateMeasure(Self.GetDLRate()),
    m_pre_ulrate.RateMeasure(Self.GetULRate()),
    Tracker.GetRefuseClick());
    if (file == NULL) {
     fprintf(stderr,"Erreur dans l'ouverture du fichier");
  }
    [B]strcpy(copie,m_peers_count);[/B]   <- Le soucis se passe ici :)
    fprintf(file,"");
    fclose(file);

Il faudrait que je convertise le string en char si j’ai tout compris :slight_smile: J’ai pas mal de base en C mais par contre çà je n’ai jamais vu :confused:

J’ai trouvé ceci :

string Str = "toto";

const char *CstStr1 = Str.data ();
const char *CstStr2 = Str.c_str (); 

Quelqu’un pourrait m’expliquer comment je peux insérer ceci dans le code, mes tentatives ont échouées :confused:

Merci d’avance de m’éclairer :jap:

Si j’ai bien suivis, “m_peers_count” est un size_t et “copie” un char * (ou char[] ), si c’est le cas, un sprintf(buffer, “%d”, m_peers_count) et une copie de buffer dans “copie” devrait suffire.

C’est tout à fait çà en fait je n’arrive pas a écrire un string_t dans un fichier :frowning: donc je me dis qu’il me faut un const char vu l’erreur :slight_smile:

fprintf(file,"Mon texte"); est censé copié Mon texte dans le fichier çà fonctionne mais si je mets :

fprintf(file,m_peers_count); il me refuse la copie :’(

Je vais tester çà merci beaucoup :slight_smile:

EDIT : çà fonctionne un grand merci :jap: