Posez votre question Signaler

Convertion en C [Résolu]

Selia 15Messages postés 29 mars 2006Date d'inscription - Dernière réponse le 9 avril 2006 à 13:05
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 ;
}
Lire la suite 

Convertion en C »

Suggestions
3 réponses
Réponse
+0
moins plus
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
Selia- 8 avril 2006 à 22:05
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « convertion en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?