Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
cin [2016/04/25 18:56] gbdivers |
cin [2016/04/25 19:28] (Version actuelle) gbdivers |
||
---|---|---|---|
Ligne 38: | Ligne 38: | ||
Creation d'une variable, puis utilisation de ''>>'' avec ''std::cin''. Typage fort du C++ fait que ''std::cin'' lit correctement le type de valeur selon le type. | Creation d'une variable, puis utilisation de ''>>'' avec ''std::cin''. Typage fort du C++ fait que ''std::cin'' lit correctement le type de valeur selon le type. | ||
- | <code cpp> | + | <code cpp main.cpp> |
#include <iostream> | #include <iostream> | ||
Ligne 58: | Ligne 58: | ||
===== Entrer une ligne de texte ===== | ===== Entrer une ligne de texte ===== | ||
- | getline | + | Pour entrer une chaine. Essayons avec : |
- | j'ai écrit sur le bac à sable, mais je préfère une approbation d'un programmeur plus expérimenté | + | |
- | d3m0t3p | + | |
- | ===== Gestion des erreurs ===== | + | |
- | filtrer le texte entré, vérifier qu'il est conforme | + | <code cpp main.cpp> |
+ | #include <iostream> | ||
+ | #include <string> | ||
+ | |||
+ | int main() { | ||
+ | std::string s {}; | ||
+ | std::cin >> s; | ||
+ | std::cout << "input: " << s << std::endl; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Pour lancer le programme : | ||
+ | |||
+ | <code> | ||
+ | > a.out hello | ||
+ | input: hello | ||
+ | </code> | ||
+ | |||
+ | Pas de probleme. Autre test : | ||
+ | |||
+ | <code> | ||
+ | > a.out hello world | ||
+ | input: hello | ||
+ | </code> | ||
+ | |||
+ | Oups. Les espaces sont utilise pour indiquer une autre entree (comme pour les lignes de commande. Rappel : "a.out hello world" argc = 3) | ||
+ | |||
+ | Pour ligne une ligne complete (ie tout ce qu'il y a jusqu'a "Enter"). | ||
+ | |||
+ | |||
+ | <code cpp main.cpp> | ||
+ | #include <iostream> | ||
+ | #include <string> | ||
+ | |||
+ | int main() { | ||
+ | std::string s {}; | ||
+ | std::getline(std::cin, s); | ||
+ | std::cout << "input: " << s << std::endl; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Avec | ||
+ | |||
+ | <code> | ||
+ | > a.out hello world | ||
+ | input: hello world | ||
+ | </code> | ||
+ | |||
+ | Ok, ca lit correctement. | ||
+ | |||
+ | ===== Lire plusieurs entree ===== | ||
+ | |||
+ | Probleme de \n restant, ajouter ignore. | ||
+ | |||
+ | |||
+ | ===== Valider les entrees ===== | ||
+ | |||
+ | Taper du texte ou autre alors que entier attendu. Comment regler cela ? Tester le retour de cin, clear + ignore. | ||
+ | |||
+ | Autre solution ? Utiliser string + conversion stoi/stof, ou regex, ou autre. | ||
- | __ pas encore vu les boucles... __ | + | ===== Attendre une touche quelconque ===== |
+ | Avec ignore. | ||
^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | ||
- | {{tag> Cours C++}} |