Outils d'utilisateurs

Outils du Site


cin

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

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++}} 
cin.1461603407.txt.gz · Dernière modification: 2016/04/25 18:56 par gbdivers