Problème de char

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 - 24 août 2004 à 12:57
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 24 août 2004 à 20:34
Coucoutout le monde, tout d'abord voilà mon code :
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include
#include <math.h>

char *bin_dec(char *binaire)
{
int decimal = 0;
int long_binaire = strlen(binaire);
for(int i=0;i<long_binaire;i++)
{
cout<>code;
dec = bin_dec(code); // ici l'erreur
cout<<"Code d?cimal"<<dec<<endl;
getch();
clrscr();
return 0;
}

J'ai signalé où était l'erreur : Cannot convert 'int' to 'char *'
Si quelqu'un à une solution, merci !

11 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2004 à 13:03
Serieux, tu ferais mieux d'ouvrir un bouquin de C et de l'etudier plutot que de passer ta journee comme hier sur un point de detail qui aurait du etre etudie dans un livre. Tu n'avanceras pas ainsi.

ciao...
BruNews, Admin CS, MVP Visual C++
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
24 août 2004 à 13:06
je ne sais pas d'où viens le problème, donc je ne sais pas où chercher !!!!
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 août 2004 à 13:20
La fonction bin_dec() prend en parametre un pointeur sur une char et dans ta main tu lui passe un int !!! Ca te parait normal ?

Comme te l'as dis BruNews, prend un bon livre de C pour commencer!

Shell
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
24 août 2004 à 13:28
le probleme c'est que tu a plein d' "a priori" sur le c (du fait que tu ais jusqu'ici reussi à produire des codes qui "fonctionnent") mais tu n'as pas les bases qui te permettent de savoir ce que tu fais et ta facon de programmer est hasardeuse, ce qui t'amenne ici à produire un code incoherent

oubli tout ce que tu as l'impression de savoir et plonge toi dans un bouquin ou au moins un cours online, c'est la seul solution
0

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

Posez votre question
Rusalie Messages postés 21 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 24 août 2004
24 août 2004 à 13:31
Minet cherche un Matou pour lui faire la lecture ?
Le Matou de Gouttière, rusalie veut bien lui expliquer la différence entre, char et int. (Attention aux lapsus)

Cupboard expert.
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 août 2004 à 14:46
J'ai pas grand chose a faire alors j'ai repris ton code en le corrigeant et en y mettant des commentaires pour que tu comprènes tes erreurs.
Voici le code :
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

// Prototype de la fonction de conversion
int bin_to_dec(char Val[]);

int main(int argc, char* argv[]) 
{ 
char code[100];

// On recupère la valeur binaire a convertir
printf("Entrer un code binaire : ");
scanf("%s",code);

// On affiche le résultat en calculant sa valeur décimal
printf("Code decimal : %i\n\n",bin_to_dec(code));

return 0; 
} 
int bin_to_dec(char Val[])
{
int cpt;				// Variable de compteur
int tmp;				// Variable temporaires ou on va stocker chaque élément de la chaine de caractère
int somme =0;			// Variable ou va être stocké le résultat
int size = strlen(Val);	// On recupere la taille de la chaine
char c[2];				// Variable qui nous permet de stocker le résultat de la conversion  de chaque éléments de la chaine

// On mets le caractère de fin
c[1] = '\0';
    
for(cpt=0;cpt<size;cpt++)
{
// On recupère l'element en cours(char)
c[0] = Val[size-cpt-1];
// On converti l'element en cours en entier(int)
tmp = atoi(c);
// On ajoute le calcul actuel a ceux précédents
somme += pow(2,cpt)*tmp;
}

// On renvoi le résultat sous forme d'entier car la fonction est déclaré entière
return somme;
}


Comme te l'a dis djl, ce n'est pas parceque le programme fonctionne, qu'il ne comporte pas d'erreur de programmation!
Les compilateurs actuels reprennent certaines erreurs de code sans que tu t'en rendes compte.

Rien ne remplace un bon bouquin de C !!!

Shell
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
24 août 2004 à 14:57
tres généreux de ta part

pour la fonction bin_to_dec j'en avais donnés une dans l'autre topic, moins comprehensible mais plus rapide, on sait jamais ?

int bin_to_dec( const char *bin)
{
int i = 0;
char c;

while( c = *bin++ )
{
if( c == '1' ) i++;
i <<= 1;
}
i >>= 1;
return i;
}

j'ai vaguement testé
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
24 août 2004 à 15:38
en fait faudrais plutot faire

int bin_to_dec( const char *bin)
{
int i = 0;
char c;

while( c = *bin++ )
{
i <<= 1;
if( c == '1' ) i++;
}
return i;
}
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
24 août 2004 à 16:10
je vous remerci tous, il est vrai qu'un bon bouquin serai le top, mais je ne trouve rien de correct sur le net !!! Tous les tutoriaux que je trouve parle de tel ou tel truc, mais pas comme dans un bouquin, et hélas le seule moyen que j'ai un livre serai d'attendre une fête genre Noël ! Mais merci quand même je prend note sur vaut conseil.
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 août 2004 à 20:18
Si tu n'as pas trop les moyens financier, essaye d'aller faire un tour dans les bibliothèques et empreinte en un. Ensuite tu peux logiquement renouveller l'emprunt ce qui fera que tu pourra emprunter des livres sur le prog pendant un bon bout de temps.

Shell
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2004 à 20:34
minet03 > si tu peux venir sur Paris, tu repars avec un bouquin gratos.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous