Bonjour,
je rentre un int par exemple 24, et je voudrais récuperer deux int : '2' et '4'.
je vois pas comment faire ma fonction ...
une idée ?
merci
Bonjour,
je rentre un int par exemple 24, et je voudrais récuperer deux int : '2' et '4'.
je vois pas comment faire ma fonction ...
une idée ?
merci
Tu récupère ton int.
Tu le met dans une std::string via std::ostringstream
Tu récupère tes valeurs via []
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
je essayé en écrivant :
je lance avec n = 24, j'ai comme affichage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void split(int n, int* n1, int* n2) { char num[100]; cout<<"ca passe 2 !!"<<endl; sprintf(num, "%d", n);//put the int n to the sting num cout<<"ca passe 3 !!"<<endl; cout<<num[0]<<" "<<num[1]<<endl; //put the char num[0] into the pointer n1 *n1=num[0]-48; //because 0 code 48 in the ASCII table *n2=num[1]-48; cout<<"ca passe 4 !!"<<endl; }
je comprend pas vraiment pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ubuntu@ubuntu:~/exercice1$ ./AdditionCycles enter your number 24 ca passe 2 !! ca passe 3 !! 2 4 Segmentation fault (core dumped)
Sinon il doit y avoir plus simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 istringstream iss( str ); char c; while ( iss >> c ) ;
Je comprend pas ta solution NiamorH
qu'est ce c'est : istringstream iss( str );
et ça donne quoi : while ( iss >> c ) ??
je met où mon int de dépard et les 2 int d'arrivé ?
merci
Essaie ce code chez toi :
Et regarde ce que ta console affiche. Magique ? Non il aurait suffit d'aller voir la faq, tous les éléments y sont.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <sstream> #include <iostream> using namespace std; int main() { istringstream iss( "24" ); char c; while ( iss >> c ) { cout << c << endl; } }
Maintenant, la seule difficulté pour toi, c'est de mettre la bonne chaîne dans l'iss.
Oui je sais c'est pour taquiner.
Ce que je sous entendais, c'est que sont int, ya de forte chance pourqu'il le recoive via cin (ou un autre flux)
D'où ma remarque
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
Partager