Convertion en C

Résolu
Selia Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
bonsoir
on m'as donné un programme qui covertis une chaine de caracteres en float mais il se compile mais il ne s'execute pas veuillez le corriger ou me donner une autre solution
merci

#include <stdio.h>
#include <string.h>

int main(){
double tab[255];
char *pointeur;
char *separateur = { "*-+/eE" }; // Le séparateur
char *buffer;
char *Chaine_Entrante="2.56e-8*3.14";
int nb_mot=0;

buffer = strdup ( Chaine_Entrante );

// premier appel,
pointeur = buffer;

pointeur = strtok(buffer,separateur);
if ( pointeur != NULL )
{
tab[nb_mot]=atof(pointeur);
++nb_mot; // increment du nombre de mot
printf ("Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
}

while( pointeur != NULL )
{
// Cherche les autres separateur
pointeur = strtok( NULL, separateur );
if ( pointeur != NULL )
{
tab[nb_mot]=atof(pointeur);
++nb_mot; // increment du nombre de mot
printf ("Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
}
}
return 0 ;
}

2 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Le programme marche très bien mais je suppose que tu es sous windows et que la console disparait tellement vite que tu ne vois pas le résultats s'afficher. Tu peux rajouter avant le return 0 un getchar pour forcer une pause :
int main(){
  ...
  getchar();
  return 0;
}

Bonne chance
0
Selia Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour vos reponses ;elles m'ont beaucoup aidé,
mais y'a juste un ptit bléme , c'est :
comment afficher un tableau avec des vides:
exemple:
la chaine:
5*8+64
je veux avoir ce tableau:
5 8 64 (c.à.d:je veux laisser la place des opperateurs)
et non pas:
8564


je ne peux pas affecter un blanc dans un des elements du taleau(vu que c'est un tableau de floats ou d'entiers)
alors? je fais comment?

ENCORE MERCI?
MILLE MERCI.
merci.
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
out désigne un soit un fichier que tu as ouvert avec fopen (et que tu fermera avec fclose), soit un flux standard comme stdout ou stderr.
#include <stdio.h>

void show_tableau(FILE *out,double *tab,unsigned int taille){
  unsigned int i;
  for(i=0;i<taille;++i){
    fprintf(out,"%lf ",tab[i]);
  }
  fprintf(out,"\n");
}

int main(){
  //...
  //my_tab est un tableau de 5 éléménts
  show_tableau(stdout,my_tab,5);
  //...
  return 0;
}

Bonne chance
0