Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 23/08/2013, à 10:35

kboo

C: de int vers char*

Bonjour,
J'ai une fonction que je vais appeler "int fonction(char* entree)" qui n'accepte que un tableau de caractères (char*), or j'ai une fonction "char autreFonction()" qui renvois un caractère. le Problème c'est comment faire pour mettre la sortie de autreFonction dans l'entrée de fonction, autrement dit:

int fonction(char* entree) 
{
 // ....
  return 0;
}
char autreFonction() 
{
  // ....
  return 'a';
}

fonction(autreFonction()); // ???

En concret voici ce que je veux éviter:

int Q = fonction();

char QSTR[1];
QSTR[0] = (char)pA->getQ();

char QG_STR[1];
sprintf(QG_STR, "%d", Q);

if(strcmp(QG_STR, QSTR) != 0)
{
//...
}

merci bien!

Dernière modification par kboo (Le 23/08/2013, à 11:38)

Hors ligne

#2 Le 23/08/2013, à 10:50

Hoper

Re : C: de int vers char*

fonction(autreFonction()); // ???

Bein oui... Par contre, j'ai pas de C depuis TREEEEEES Longtemps (et j'ai toujours été mauvais en plus) mais la, comme ça, il y a truc qui chiffonne. D'un coté tu attend une carrote (char*) de l'autre tu lui envoi une pomme de terre (un char). T'es sur de ton coup ?

EDIT : Bon, vu que je comprend rien à la suite du message que tu as ajouté entre temps, tu peux surement ne pas tenir compte du mien smile (mais quand meme il me semble qu'il y a un manque de logique quelque part...)

Dernière modification par Hoper (Le 23/08/2013, à 10:54)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

Hors ligne

#3 Le 23/08/2013, à 10:53

kboo

Re : C: de int vers char*

Hoper a écrit :

fonction(autreFonction()); // ???

Bein oui... Par contre, j'ai pas de C depuis TREEEEEES Longtemps (et j'ai toujours été mauvais en plus) mais la, comme ça, il y a truc qui chiffonne. D'un coté tu attend une carrote (char*) de l'autre tu lui envoi une pomme de terre (un char). T'es sur de ton coup ?

c'est exact, j'ai fait exprès... je cherche un moyen qui ne soit pas moche de faire ça

Hors ligne

#4 Le 23/08/2013, à 11:24

kboo

Re : C: de int vers char*

petite modif pour le code:

int fonction(char* entree) 
{
 // ....
  return 0;
}
int autreFonction() 
{
  // ....
  return 49;
}

fonction(autreFonction()); // <<<<problème ici

merci bien

Hors ligne

#5 Le 23/08/2013, à 12:23

pingouinux

Re : C: de int vers char*

Bonjour,
Je reconnais que c'est un peu tordu :

main(){
   char c;
   printf( "%c\n",fonction( ((c=autreFonction()),&c) ) ); // ???
}

En ligne

#6 Le 24/08/2013, à 13:48

no_spleen

Re : C: de int vers char*

Salut,

Je ne dois pas bien comprendre ton problème, car j'ai l'impression qu'il suffit de faire cela

   char a = autreFonction();
   int b = fonction(&a);

Hors ligne

#7 Le 24/08/2013, à 15:04

Haleth

Re : C: de int vers char*

Tu écrit plusieurs lignes, comme tout le monde, ou tu fais une fonction pour cela


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne