Namespaces
Variants

std::basic_istream<CharT,Traits>:: ignore

From cppreference.net
basic_istream & ignore ( std:: streamsize count = 1 , int_type delim = Traits :: eof ( ) ) ;

Extrait et ignore les caractères du flux d'entrée jusqu'au delim inclus.

ignore se comporte comme une UnformattedInputFunction . Après avoir construit et vérifié l'objet sentinelle, il extrait les caractères du flux et les ignore jusqu'à ce que l'une des conditions suivantes se produise :

  • des conditions de fin de fichier se produisent dans la séquence d'entrée, auquel cas la fonction appelle setstate ( eofbit ) .
  • le prochain caractère disponible c dans la séquence d'entrée est delim , tel que déterminé par Traits :: eq_int_type ( Traits :: to_int_type ( c ) , delim ) . Le caractère délimiteur est extrait et ignoré. Ce test est désactivé si delim est Traits :: eof ( ) .

Table des matières

Paramètres

count - nombre de caractères à extraire
delim - caractère délimiteur pour arrêter l'extraction. Il est également extrait

Valeur de retour

* this

Exceptions

failure if an error occurred (the error state flag is not goodbit ) and exceptions() is set to throw for that state.

Si une opération interne lève une exception, elle est capturée et badbit est défini. Si exceptions() est défini pour badbit , l'exception est relancée.

Exemple

L'exemple suivant utilise ignore pour ignorer les entrées non numériques :

#include <iostream>
#include <limits>
#include <sstream>
constexpr auto max_size = std::numeric_limits<std::streamsize>::max();
int main()
{
    std::istringstream input("1\n"
                             "some non-numeric input\n"
                             "2\n");
    for (;;)
    {
        int n;
        input >> n;
        if (input.eof() || input.bad())
            break;
        else if (input.fail())
        {
            input.clear(); // unset failbit
            input.ignore(max_size, '\n'); // skip bad input
        }
        else
            std::cout << n << '\n';
    }
}

Sortie :

1
2

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement corrigé
LWG 172 C++98 le type de count était incorrectement spécifié comme int corrigé en std::streamsize

Voir aussi

extrait des caractères
(fonction membre publique)
extrait des caractères jusqu'à trouver le caractère spécifié
(fonction membre publique)