Peut on utiliser un cin>> dans un switch?
Fermé
helnod
Messages postés
1
Date d'inscription
samedi 13 décembre 2014
Statut
Membre
Dernière intervention
13 décembre 2014
-
Modifié par Whismeril le 14/12/2014 à 00:30
mamiemando Messages postés 33025 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mars 2024 - 23 déc. 2014 à 14:39
mamiemando Messages postés 33025 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mars 2024 - 23 déc. 2014 à 14:39
A voir également:
- Peut on utiliser un cin>> dans un switch?
- Comment utiliser chromecast - Guide
- Comment utiliser wetransfer gratuit ? - Guide
- Utiliser iphone comme webcam - Guide
- Logiciel switch - Télécharger - Conversion & Extraction
- Utiliser tablette comme ecran - Guide
1 réponse
mamiemando
Messages postés
33025
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
23 déc. 2014 à 14:39
23 déc. 2014 à 14:39
Oui c'est possible mais il faut au préalable corriger quelques fautes :
1) il manque un point virgule après la déclaration de lettre
2) un switch case peut se faire sur un entier, un caractère. Donc là tout va bien. Mais par contre dans tes case, tu dois parler du caractère A, noté 'A' en C/C++ et ainsi de suite.
3) tu ne peux pas déclarer une variable immédiatement après un case, car sinon selon le case, les déclarations peuvent être conflictuelle. La solution consiste à limiter la portée (appelé scope) de ta variable à l'aide d'accolades (voir ci dessous). À noter que initialiser les chaînes aya ne sert à rien dans ce programme. Tu pourrais directement écrire :
4) Ce n'est pas une faute, mais normalement on utilise endl au lieu de '\n' en C++. Notamment parce que le retour à la ligne ne met pas forcément en jeu les mêmes caractères selon le système (\r\n sous windows, \n sous linux).
5) Normalement les commentaires s'écrivent plutôt :
6) Garde à l'esprit que les
Bonne chance
1) il manque un point virgule après la déclaration de lettre
2) un switch case peut se faire sur un entier, un caractère. Donc là tout va bien. Mais par contre dans tes case, tu dois parler du caractère A, noté 'A' en C/C++ et ainsi de suite.
3) tu ne peux pas déclarer une variable immédiatement après un case, car sinon selon le case, les déclarations peuvent être conflictuelle. La solution consiste à limiter la portée (appelé scope) de ta variable à l'aide d'accolades (voir ci dessous). À noter que initialiser les chaînes aya ne sert à rien dans ce programme. Tu pourrais directement écrire :
std::string aya;
4) Ce n'est pas une faute, mais normalement on utilise endl au lieu de '\n' en C++. Notamment parce que le retour à la ligne ne met pas forcément en jeu les mêmes caractères selon le système (\r\n sous windows, \n sous linux).
5) Normalement les commentaires s'écrivent plutôt :
6) Garde à l'esprit que les
using namespace stdne doivent êtres utiliser que dans des fichiers sources (cpp), jamais dans des headers (h). Ici c'est donc correct, mais personnellement je préfère ne jamais en utiliser (et écrire std::string, std::endl, etc). Question de goût :-)
/** Mon commentaire */
// Mon commentaire
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout<< "Entrez une lettre" << endl;
char lettre;
cin >> lettre;
switch (lettre)
{
case 'A' :
{
cout << "ton choix est A, entre ton nom" << endl;
string jaime;
cin >> jaime; //* voici le premier cin//
cout << "ton nom est : " << jaime << endl;
}
break;
case 'B' :
{
cout << "ton choix est B, entre maintenant ton prenom" << endl;
string aya;
cin >> aya; //* le second cin .sont ils possibles//
cout << "ton prenom est :" << aya << endl;
}
break;
default :
cout << "je veux juste connaitre ton nom alors stp sois sympa" << endl;
}
return 0;
}
Bonne chance