Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
"Eric Bart" writes:
#include <iostream> #include <string>
std::string s; std::getline(std::cin, s); if (!std::cin) { // probleme de lecture a traiter } else { ... }
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
std::string s;
std::getline(std::cin, s);
if (!std::cin) {
// probleme de lecture a traiter
} else {
...
}
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
std::string s; std::getline(std::cin, s); if (!std::cin) { // probleme de lecture a traiter } else { ... }
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
giova
Jean-Marc Bourguet wrote:
"Eric Bart" writes:
#include <iostream> #include <string>
std::string s; std::getline(std::cin, s); if (!std::cin) { // probleme de lecture a traiter } else { ... }
A+
ou bien plus simple a coder mais pose probleme si le texte saisie
comprend des séparateurs tel que caratere espace, tabulation, etc...
#include <iostream> #include <string>
using namespace std; //evite d'avoir a taper std:: a tout bout de champ ;) string s; cout<<"tape un truc puis touche entrée : "; cin>>s;
std::getline(std::cin, s); if (!std::cin) { // probleme de lecture a traiter } else { ... }
Il me semble que l'idiome consacré (qui, je le sais, revient strictement au même) serait plutôt
if ( ! getline(cin, s)) { // Problème de lecture à traiter ... } else { // s a été lu... ... }
ou encore
if (getline(cin, s)) { // s a été lu... ... } else { // Problème de lecture à traiter ... }
Il y a là une vision d'un getline indiquant sa réussite, alors que if (!cin) me paraît plus artificiel et plus C que C++. Dans les deux cas, c'est en fait cin.fail() qui est testé indirectement. J'accepterais d'ailleurs plus volontier if (cin.fail()) que if (!cin)...
(J'espère ne pas ouvrir ici une guerre de religion !)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:pxbn0426iwj.fsf@news.bourguet.org, Jean-Marc
std::getline(std::cin, s);
if (!std::cin) {
// probleme de lecture a traiter
} else {
...
}
Il me semble que l'idiome consacré (qui, je le sais,
revient strictement au même) serait plutôt
if ( ! getline(cin, s))
{
// Problème de lecture à traiter
...
}
else
{
// s a été lu...
...
}
ou encore
if (getline(cin, s))
{
// s a été lu...
...
}
else
{
// Problème de lecture à traiter
...
}
Il y a là une vision d'un getline indiquant sa réussite,
alors que if (!cin) me paraît plus artificiel et plus C
que C++. Dans les deux cas, c'est en fait cin.fail() qui
est testé indirectement. J'accepterais d'ailleurs plus
volontier if (cin.fail()) que if (!cin)...
(J'espère ne pas ouvrir ici une guerre de religion !)
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
std::getline(std::cin, s); if (!std::cin) { // probleme de lecture a traiter } else { ... }
Il me semble que l'idiome consacré (qui, je le sais, revient strictement au même) serait plutôt
if ( ! getline(cin, s)) { // Problème de lecture à traiter ... } else { // s a été lu... ... }
ou encore
if (getline(cin, s)) { // s a été lu... ... } else { // Problème de lecture à traiter ... }
Il y a là une vision d'un getline indiquant sa réussite, alors que if (!cin) me paraît plus artificiel et plus C que C++. Dans les deux cas, c'est en fait cin.fail() qui est testé indirectement. J'accepterais d'ailleurs plus volontier if (cin.fail()) que if (!cin)...
(J'espère ne pas ouvrir ici une guerre de religion !)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/