Bibliothèque C ++ basic_ios - aperçu

La description

Il est utilisé pour jeter un œil au prochain personnage.

Déclaration

Voici la déclaration pour std :: basic_istream :: peek.

int_type peek();

Paramètres

aucun

Valeur de retour

Renvoie le caractère suivant dans la séquence d'entrée, sans l'extraire: le caractère est laissé comme caractère suivant à extraire du flux.

Des exceptions

Basic guarantee - si une exception est levée, l'objet est dans un état valide.

Courses de données

Modifie l'objet de flux.

Exemple

Dans l'exemple ci-dessous pour std :: basic_istream :: peek.

#include <iostream>     
#include <string>       
#include <cctype>       

int main () {

   std::cout << "Please, enter a number or a word: ";
   std::cout.flush();    

   std::cin >> std::ws;  
   std::istream::int_type c;
   c = std::cin.peek();  

   if ( c == std::char_traits<char>::eof() )
   return 1;
   if ( std::isdigit(c) ) {
      int n;
      std::cin >> n;
      std::cout << "You entered the number: " << n << '\n';
   } else {
      std::string str;
      std::cin >> str;
      std::cout << "You entered the word: " << str << '\n';
   }

   return 0;
}

La sortie devrait être comme ça -

Please, enter a number or a word: foobar
You entered the word: foobar