Bonjour,
je teste le fonctionnement de try / catch et throw.
Je suis devant une erreur que je ne comprend pas.
En passant en argument un nombre, le programme imprime la suite des nombre le composant.
Il y a deux compteurs.
L'objectif est de vérifier que l'argument est bien un nombre. Si cela n'est pas le cas, try catch et trhrow prend le relais.
La compilation se passe bien. Mais, j'ai un "segmentation fault" lors des essais.
C'est ce dernier que je ne comprend pas.
Voici mon ecm:
Si quelqu'un a une idée, une piste...
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <stdio.h> // printf #include <string> // stoi #include <iostream> // cerr cout using namespace std; // Déclaration des fonctions int nombreEntier(char *chaine); // Fonction Principale int main(int argc,char *argv[]){ int n=0; int i=0; int compte=1; int decompte=0; try{ n = nombreEntier(argv[1]); } catch(string const& err){ cerr << err << endl; return 0; } decompte=n; cout << decompte--; while(i < n){ cout << ',' << compte << ',' ; compte++; cout << compte << ',' << decompte << ','; decompte--; cout << decompte ; i=i+4; } cout << endl; printf("%d", n); } int nombreEntier(char *chaine){ int y; // indice int correct=1; while(chaine[y] != '\0'){ if(chaine[y] < '0' || chaine[y] > '9') correct = 0; y++; } if(correct == 0) throw string("\nUniquement un nombre entier!\n"); else return stoi(chaine); }
Cordialement
Partager