Bonjour,
Est-ce que vous pourriez m'expliquez la ligne suivante?
Merci.Code:long n = argc >1 ? atol(argv[1]) : 10L;
Version imprimable
Bonjour,
Est-ce que vous pourriez m'expliquez la ligne suivante?
Merci.Code:long n = argc >1 ? atol(argv[1]) : 10L;
Bonjour,
il s'agit juste de l'opérateur ternaire ?:
Salut,
Comme l’a dit Bousk, il ne s’agit que de l’opérateur ternaire qui est plus ou moins un if/else condensé.
Ton code est équivalent à :
Code:
1
2
3
4
5 long n; if (argc > 1) n = atol(argv[1]) else n = 10L;
Au passage, on évite généralement d’utiliser la fonction atol car elle ne fait aucune gestion d’erreur. On préférera utiliser strtol (ou puisque que l’on est en C++, un std::istringstream).
En gros, si on a passé un argument au programme, on le convertit en nombre pour l'utiliser, sinon on prend le nombre 10.
Merci beaucoup pour ces réponses.