Tu veu convertir une chaine en 1char ou bien en autant de char qu'il existe de caractères dans la chaine ?
Je me demande si t'as pas eu un bug avec un de tes progs qui utilisent les strings.
Tu pourrait me montrer le code, il me semble que j'avais eu ce problème une fois mais je l'ai resolu...
Détail, s'il s'agit de passer une chaine de caractère à une fonction, passe PAR REFERENCE (adresse et pointeurs) le premier élément de la chaine (sauf si tu utilise string)
Tu peux faire une classe (en redéfinissant les opérateurs dont les opérateurs de cast) où tu détruis le char* dans le destructeur. Comme ça, plus besoin de penser au delete comme pour la fonction.
Sinon, si tu ne comptes pas modifier la chaine, un const char * devrait suffire, donc tu pourrais utiliser directement tonString.c_str()
Merci pour votre aide, mais j'ai trouvé une solution un peu bizard mais qui marche...
Je n'ai pas converti ma string et je l'ai écrite dans mon fichier (de façon un peu bizard j'avoue...).
void ecriture(tclient tab)
{
int i;
std::string concat = "";
for(i=0;i<82;i++)
{
concat=concat+tab[i]+';';
}
concat=concat+"\n";
//std::cout<<concat;
fic2<<concat; //cette ligne me semble bizard mais ça marche
}
A force de tourner le code dans tous les sens, on arrive à faire quelque chose!! :-D
les << et >> sont des opérateurs de flux: un tuyau dans lequel on met des infos binaires linéaires. CE qui permet de les afficher (en dirigeant sur la sortie standard (écran) avec cout) ou de les écrires dans un fichier comme tu as fais.
Si tu fais ta propre classe, il suffit de surcharger les opérateurs << et >> pour ta classe et tu peux l'afficher ou l'enregistrer.