Convertir char en const char *

Résolu
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010 - 14 juin 2007 à 10:36
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 - 14 juin 2007 à 15:55
Bonjour tout le monde,

Ma question est dans la titre, est-il possible de convertir un char en un const char*?
Je m'explique.

Je recupere des lettres dans chaine ce qui me donne quelque chose comme ça:
chaine[1] = A
chaine[2] = B
etc...

Je voudrais écrire chacune de ces lettres dans un fichier .txt qui se nomme FichierCompteurNews.
Je peux utiliser la fonction fputs pour écrire mais en paramétre je ne peux mettre que chaine, hors je ne veux pas toute la chaine juste un petit morceau, qui va de chaine[15] à chaine[30].

Ce que j'aimerai c'est faire ça : fputs(chaine[i],Fichier_SelectionCompteurNews)
Mais j'ai une erreur -> error C2664: 'fputs' : impossible de convertir le paramètre 1 de 'char' en 'const char *'

Je travail sous Microsoft Visual c++.
Quelqu'un aurait - il une solution à m'apporter?
A voir également:

36 réponses

Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:12
ok on s'est compris, et pis on va attendre qu'il revienne :p

Loki
0
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010
14 juin 2007 à 14:29
Je suis une fille aussi étonnant que ça puisse paraitre!

Je vais tester tout ça...
Essayer de me dépatouiller...
Pour l'histoire de se déplacer le long de ta chaine de '>' en '>' avec la boucle et tout, j'ai compris.
Le probléme c'est que je n'arrive pas à le mettre en oeuvre.
C'est surtout le fait de "dire" si le terme juste aprés est '<' je continu
Ca je ne voit pas du tout comment le realiser!
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:33
char * ptr = strstr('>', buffer);
if (ptr[1] == '<')
    ...
else
    ...

Loki
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:33
ps. désolé. et non ce n'est pas si étonnant que ça, juste assez rare
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 juin 2007 à 14:45
strstr recherche une chaine de caractère. C'est strchr pour chercher un char mais cette fonction est inutile. Suffis de promener un pointeurs et comparer sa valeur.

C++ (@++)<!--
0
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010
14 juin 2007 à 14:47
c'est pas grave j'ai l'habitude...
ta technique à l'air d'être super mais en faite ça ne resoud pas mon probleme.

char

* ptr = strstr('>', buffer);

if (ptr[1] == '<')
{
}

else
{
      fputs(chaine[i],Fichier_SelectionCompteurNews);
}

Donc questions!
Comment je declare 'buffer'?
Et comment faire pour que je puisse copier chaine[i] dans un fichier?
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:48
ouaip pardon, sinon ">" au lieu de '>' ca marche peut-être.
mais quand tu dis promener, c'est caractère par caractère ?
là la fonction le fait toute seule.

Loki
0
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010
14 juin 2007 à 14:51
c'est toi qui parle de promener!!

Moi à la base je voulais juste écrire chaine[i] dans un fichier
Le probléme étant que qu'avec le code qui est au dessus ça me donne l'erreur suivante :
error C2664: 'fputs' : impossible de convertir le paramètre 1 de 'char' en 'const char *'

[je le declare comment buffer?]
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:55
euh on se perd là.

- buffer c'est un nom que j'ai mis comme ça au pif. ça représente la chaine à scanner.
- je ne suis pas sur que ce que tu as écris dans le else soit ce que tu veux.

tu as ta chaine chaine = " copieur-couloir

"
tu fais une boucle while avec une attrib : ptr str<gras>chr('>',chaine); et la condition du while (peutêtre un do while) est while (ptr[1]</gras> '<')
ensuite en sortant du while tu te retrouve un cran avant copieur-couloir
tu te décales donc et tu lis tous les caractères jusqu'à trouver un '<' (fais un test à chaque caractère).
ensuite tu laisse tomber le reste.

mais apparemment SAKingdome a mieux à proposer comme solution.

est ce que c'est plus clair ? attendons de voir ce que va dire SAK

Loki
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:56
attention chaine[i] est un caractère ('a' par exemple). la fonction puts sert à copier des chaines "abc") d'ou son nom puts comme string.

Loki
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 juin 2007 à 14:58
Loki6 >> Je sais que la fonction le fais seule mais elle est inutile car on peut très bien utiliser un pointeur que l'on peut contrôler complètement et non pas une fonction qui peut faire je ne sais quoi. Et puis d'ailleur, j'espère qu'il y a un 0 de fin de chaine dans buffer car sinon, strchr passera tout droit.

noulii >> fputs(chaine+i,Fichier_SelectionCompteurNews);
comme indiqué précédemment par Loki6

C++ (@++)<!--
0
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010
14 juin 2007 à 15:00
ok je crois avoir compris...Ca fait des jours que je suis sur ce programme j'ai un peu le cerveau en bouilli à force de me prendre la tête!!
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 juin 2007 à 15:01
Non je n'ai rien à proposer. Je n'ai rien suivit et je ne comprend pas ce qu'elle veut faire. Je fesais juste la remarque du strchr et strstr.

C++ (@++)<!--
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 15:05
noulii si t'es pas trop pressée on peut regarder ça ce soir pendant un moment, quand je serai plus au boulot. si tu me montres ton projet je comprendrai plus exactement ce que tu veux faire.

Loki
0
noulii Messages postés 21 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 7 janvier 2010
14 juin 2007 à 15:08
Ce soir c'est pas possible, je me léve à 5h demain faut que je dorme...
Mais je veux bien ton adresse mail si ça ne te derange pr parler plus tranquillement, et quand j'aurai un peu + de temps!
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 15:55
en effet ! n'oublie pasRéponse acceptée

Loki
0
Rejoignez-nous