(C++) Inclure variable int dans un char
Fermé
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
-
18 mai 2010 à 17:36
twintornado Messages postés 20 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 mars 2012 - 20 mai 2010 à 13:50
twintornado Messages postés 20 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 mars 2012 - 20 mai 2010 à 13:50
A voir également:
- (C++) Inclure variable int dans un char
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Vba range avec variable ✓ - Forum VB / VBA
- Int(input()) - Forum Python
- Convertir char en int c - Forum C
- Char ** - Forum C
2 réponses
ghuysmans99
Messages postés
2495
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
337
18 mai 2010 à 19:01
18 mai 2010 à 19:01
int tonnombre = 176; char tonbuffer[7]; sprintf(tonbuffer,"I%dX",tonnombre);
Fais bien attention à ne pas dépasser la taille du buffer (ou sinon utilise l'allocation dynamique)
dubcek
Messages postés
18587
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 mars 2023
5 583
19 mai 2010 à 13:54
19 mai 2010 à 13:54
hello
char * buffer = "OHMS+8.1000E+3"; float x; sscanf(index(buffer, '+'),"%E", &x);
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
Modifié par twintornado le 19/05/2010 à 15:04
Modifié par twintornado le 19/05/2010 à 15:04
Merci ^^
en suivant tes conseils j'ai un peu modifié ta ligne car il fallait déclarer "index" et donc j'ai fait un petit programme pour tester cela
int m;
char buffer [50]="je suis 20.000E+3";
cout<<buffer<<"\n\n";
sscanf(buffer,"%E",&m);
cout<<" la valeur est : "<<m<<endl;
le problème est que au final la valeur affiché n'est pas 20.000E+3 mais : 2147323904 ....
pourquoi cette valeur ? je ne sais pas ...
j'ai ésayé different truc du style %d,%f,%e rien n'y fait
cela devient encore plus drole :
j'ai remplacé le int m par un float m
il m'affiche :
la valeur est : nan
en suivant tes conseils j'ai un peu modifié ta ligne car il fallait déclarer "index" et donc j'ai fait un petit programme pour tester cela
int m;
char buffer [50]="je suis 20.000E+3";
cout<<buffer<<"\n\n";
sscanf(buffer,"%E",&m);
cout<<" la valeur est : "<<m<<endl;
le problème est que au final la valeur affiché n'est pas 20.000E+3 mais : 2147323904 ....
pourquoi cette valeur ? je ne sais pas ...
j'ai ésayé different truc du style %d,%f,%e rien n'y fait
cela devient encore plus drole :
j'ai remplacé le int m par un float m
il m'affiche :
la valeur est : nan
dubcek
Messages postés
18587
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 mars 2023
5 583
Modifié par dubcek le 19/05/2010 à 15:13
Modifié par dubcek le 19/05/2010 à 15:13
il faut sauter le "je suis"
sscanf(index(buffer, ' '),"%E", &m);
utilise printf avec le format %E
printf/("%.3E\n", m);
sscanf(index(buffer, ' '),"%E", &m);
utilise printf avec le format %E
printf/("%.3E\n", m);
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
Modifié par twintornado le 19/05/2010 à 17:00
Modifié par twintornado le 19/05/2010 à 17:00
float m;
char buffer []="je suis 20.000E+3";
cout<<buffer<<"\n\n";
sscanf(index(buffer, ' '),"%E", &m);
printf("%E\n",m);
il me retourne l'erreur suivante
index is not declared in this scope ...
Utilises-tu une bibliothèque autre que stdio.h ? Ou êut etre que c'est moi qui n'ai pas la bonne expression.
char buffer []="je suis 20.000E+3";
cout<<buffer<<"\n\n";
sscanf(index(buffer, ' '),"%E", &m);
printf("%E\n",m);
il me retourne l'erreur suivante
index is not declared in this scope ...
Utilises-tu une bibliothèque autre que stdio.h ? Ou êut etre que c'est moi qui n'ai pas la bonne expression.
dubcek
Messages postés
18587
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 mars 2023
5 583
Modifié par dubcek le 20/05/2010 à 09:48
Modifié par dubcek le 20/05/2010 à 09:48
il faut inclure strings.h
j'utilise rindex car il y a plusieurs espaces
j'utilise rindex car il y a plusieurs espaces
$ make float
cc float.c -o float
$ ./float
2.000E+04
$ cat float.c
#include <stdio.h>
#include <strings.h>
main(){
char * buffer="je suis 20.000E+3";
float x;
sscanf(rindex(buffer, ' '),"%E", &x);
printf("%.3E\n", x);
}
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
20 mai 2010 à 10:42
20 mai 2010 à 10:42
meme problême en ajoutant strings.h :
rindex is not declared in this scope
info : j'utilise code blocks
rindex is not declared in this scope
info : j'utilise code blocks
19 mai 2010 à 12:22
Pour abuser de toi une fois de plus :
j'ai maintenant une chaine de caractères :
buffer = OHMS+8.1000E+3
si je ne veux garder que le 8.1000E+3
et l'inclure dans une variable de type float
quelle commande dois-je utiliser ?