Salut.
J’ai plusieurs questions sur le C++ et j’aurais voulu savoir si vous pouviez m’éclairer :).
Comment faire pour "bloquer" le programme et attendre que l’utilisateur veuille le fermer en appuyant sur une touche ? (J’utilise deux fois "std::cin.ignore();". Es-ce qu’il n’y a pas mieux ?)
Je n’ais pas trop compris la fonction de "std::cin.clear();", "std::cin.ignore(255, '\n’);" ainsi que "std::cin.fail();".
Edit : L’utilisation de auto pour les chaînes de caractère remplace juste std::string ou il y a d’autre conséquence ? Si j’utilise auto pour "auto variable{ 0 };" puis plus tard "variable = 0.1;" cela ne pose pas de problème ?
Enfin, es-ce que l’utilisation de "while(!std::cin » jour || jour < 1 || jour > 12);" est correcte ?
Merci d’avance !
#include <iostream>
#include <string> //permet l'utilisation des chaines de caractère.
#define NOMINMAX //permet l'utilisation d'accent 1/3.
#include <Windows.h> //permet l'utilisation d'accent 2/3.
int main()
{
SetConsoleOutputCP(1252); //permet l'utilisation d'accent 3/3.
using namespace std::literals; //permet l'utilisation de "auto" pour les chaines de caractère.
std::cout << "Quel jour es-tu né ? : ";
int jour{ 0 };
std::cin >> jour;
if (!std::cin >> jour || jour < 1 || jour > 31)
{
do
{
std::cin.clear();
std::cin.ignore(255, '\n');
std::cout << "Vous avez rentré une valeur non comprise entre 1 et 31.\nQuel jour es-tu né ? : ";
std::cin >> jour;
} while (!std::cin >> jour || jour < 1 || jour > 12);
}
std::cout << "Quel mois es-tu né ? : ";
int mois{ 0 };
std::cin >> mois;
if (!std::cin >> mois || mois < 1 || mois > 12)
{
do
{
std::cin.clear();
std::cin.ignore(255, '\n');
std::cout << "Vous avez rentré une valeur non comprise entre 1 et 12.\nQuel mois es-tu né ? : ";
std::cin >> mois;
} while (!std::cin >> mois || mois < 1 || mois > 12);
}
std::cout << "Tu es né le " << jour << "/" << mois << "." << std::endl;
std::cin.ignore();
std::cin.ignore();
return 0;
}