Fonctions IStream C ++

Fonctions IStream C ++
Le terme «flux» en C ++ décrit le flux de caractères entre le thread du programme et les E / S. Des classes de flux C ++ sont nécessaires pour saisir et sortir des actions sur les appareils et fichiers IO. Ces classes sont conçues pour gérer les entrées et les sorties du programme et ils ont des fonctionnalités particulières.

Hiérarchie de cours

Une classe C ++ est composée de méthodes nécessaires pour gérer et gouverner les données qu'il contient.

Le flotteur, les doubles et les classes sont des types de données similaires à INT. Une variable unique avec une classe car son type de données est appelée un objet C ++. Les objets spéciaux pré-spécifiés «CIN» et «COUT» ont diverses classes comme types de données.

Les données écrites sur «cout» ou lues à partir de «cin» sont des exemples de données dans ou hors des programmes en C++. Actuellement, nous envisageons les quatre classes suivantes pour celle-ci:

Istream
Tout objectif peut être servi par ce flux d'entrée. Une illustration d'un iStream est CIN.

Grumeau
C'est un flux de sortie avec plusieurs utilisations. Les grains d'osstre sont venus sous les formes de Cout et Cin.

Si ruisselant
Il s'agit d'un flux de fichiers d'entrée.

De ruisseau
C'est un flux de fichiers de sortie. L'héritage est une notion fortement utilisée dans la programmation orientée objet, comme en C ++, où certaines classes suivent les caractéristiques d'autres classes qui ont déjà été créées. Les cours d'ancêtre deviennent alors des spécialisations d'eux-mêmes grâce à l'inclusion de nouvelles fonctionnalités.

Si la classe Stream
Un ifstream peut être traité de la même manière qu'un iStream, qui est ce qu'il est.

De la classe de flux
De la même manière qu'Ifstreams fonctionne, mais avec la sortie au lieu de l'entrée, un flux de sortie est un flux de fichiers de sortie. Une ruelle est utilisée de la même manière que Cout après avoir été construite, ouverte et vérifiée pour ne pas avoir d'erreurs.

Classe iOS
De cette classe, toutes les classes de flux sont descendues. Les flux d'entrée et de sortie sont deux types différents.

Il définit les pièces de flux qui sont indépendantes de l'état d'entrée ou de sortie du flux dans la base iOS.

Contrairement aux membres qui sont discutés dans la base iOS, les membres qui dépendent des paramètres de modèle sont décrits dans cette partie.

Stream (entrée)
En raison de la complexité de la bibliothèque d'iOStream, nous ne pourrons pas le couvrir entièrement dans ces leçons. Cependant, nous mettrons en évidence les fonctions qui sont les plus utilisées. Dans cette section, nous examinerons la classe d'entrée sous une variété d'angles (iStream).

Nous avons appris que l'opérateur d'extraction (>>) sera utilisé pour acquérir les données d'un flux d'entrée.

Istream

Dans le langage de programmation C ++, le flux d'entrée est géré par la classe IStream. L'entrée est lue et comprise comme une série de caractères utilisant ces objets de flux d'entrée. L'entrée est gérée par le CIN.

Classes membres

Isttream :: Sentry
Une classe qui effectue de nombreuses tâches et chaque fois qu'une procédure d'entrée est effectuée. Son destructeur n'est pas tenu d'effectuer des actions. Cependant, les implémentations peuvent exécuter des tâches de démarrage ou de nettoyage supplémentaires sur le flux partagé par toutes les opérations d'entrée en utilisant la création et la destruction d'objets Sentry.

Les fonctions

iStream :: gcount
Donne le nombre de personnages obtenu à partir de l'action d'entrée non formatée la plus récente de l'objet. Les procédures d'entrée non formatées - Get, getline, ignorer, voir, lire, lire, putter et décevoir - modifier la valeur renvoyée par cette fonction. Cependant, gardez à l'esprit que l'appel des œil, le putback ou le non-get n'extrait aucun personnage. En conséquence, le nombre reviendra toujours 0.

iStream :: Get
Le personnage unique sort un personnage du ruisseau. Le personnage est défini comme la valeur de l'argument ou renvoyé (première signature) (deuxième signature).

C String C: Si le caractère de délimitation est présent, il n'est pas supprimé de la séquence d'entrée à la place comme le caractère suivant à récupérer du flux s'il est présent.

iStream :: getline
Supprime les caractères du flux comme une entrée non formatée et les enregistre comme une corde C dans la variable «S» jusqu'à ce que le caractère extrait devienne le caractère délimitant ou les caractères «n» aient été écrits à «S». De plus, la méthode cessera d'extraction de caractères si elle atteint la fin du fichier.

En interne, la fonction crée un objet avant d'accéder à la séquence d'entrée. Enfin, il tue l'objet avant de retourner, extrait les caractères de son objet de tampon de flux associé (en supposant que tout est en ordre) comme s'il exécutait l'une de ses méthodes de membre, SBUMPC ou SGETC.

iStream :: ignorer
Les caractères sont tirés de la séquence d'entrée et jetés un à la fois jusqu'à ce que les caractères «n» aient été retirés ou un se compare égal à l'offre. De plus, si la fin du fichier est atteinte, la fonction arrête l'extraction des caractères. La fonction définit l'indicateur «eofbit» s'il atteint ce point trop tôt (avant d'extraire n caractères ou de découvrir la délimitation).

Avant d'accéder à la séquence d'entrée, la fonction construit un objet Sentry en interne (avec Noskipws sera vrai). Enfin, il tue l'objet Sentry avant de retourner, extrait les caractères de son objet de tampon de flux associé (en supposant que tout est en ordre) comme s'il exécutait l'une de ses méthodes de membres: SBUMPC ou SGETC.

iStream :: opérateur >>
L'opérateur d'extraction (>>) applique cet opérateur à un flux d'entrée. Il a trop de membres en fonction.

Type arithmétique

Les caractères sont retirés du flux et analysés séquentiellement pour représenter une valeur du bon type, qui est ensuite enregistré comme la valeur de "Val". Avant d'accéder à la séquence d'entrée, la fonction construit un objet Sentry en interne (Noskipws sera faux). Si tout vérifie bien, il exécute alors num get :: procurez-vous les processus d'extraction et d'analyse tout en modifiant les drapeaux d'état interne du flux. L'objet Sentry est finalement détruit avant son départ.

La fonction génère en interne un objet Sentry avant de lire la séquence d'entrée, il est considéré comme effectuant une entrée formatée. Enfin, il tue l'objet Sentry avant de retourner, extrait les caractères de son objet de tampon de flux associé (en supposant que tout est en ordre) comme s'il exécutait l'une de ses méthodes de membre, SBUMPC ou SGETC.

Manipulateurs

Le PF (* ceci) est appelé, où PF pourrait être un manipulateur. Les manipulateurs sont des routines créées particulièrement pour être appelées lorsque cet opérateur est invoqué. La séquence d'entrée n'est pas affectée par cette procédure et aucun caractères n'est extrait.

Isttream :: Putback
Le personnage restauré essaie de déplacer le curseur sur un caractère dans le flux afin que le dernier caractère récupéré du flux puisse à nouveau être extrait par des opérations d'entrée.

Avant d'accéder à la séquence d'entrée, la fonction construit un objet Sentry en interne. Il appelle ensuite Sputbackc (C) sur son objet tampon de flux associé (si bon). L'objet Sentry est finalement détruit avant son départ.

iStream :: lire
Lire un bloc de données:

Les personnages «n» sont tirés du flux et sont ensuite stockés dans le tableau qui est indiqué par «S». Cette fonction reproduit simplement un bloc de données sans inspecter le contenu des données ou ajouter un caractère nul à la fin.

Dans la fonction, un objet Sentry est d'abord créé avant que la séquence d'entrée ne soit accessible. Enfin, il tue l'objet Sentry avant de retourner, extrait les caractères de son objet de tampon de flux associé (en supposant que tout est en ordre) comme s'il exécutait l'une de ses méthodes de membres: SBUMPC ou SGETC.

Le nombre d'appels des membres renverra le nombre total de caractères que cette fonction a correctement lues et stockées.

iStream :: Readsome
Cette fonction dépend du fonctionnement interne de l'objet tampon de flux spécifique lié au flux, dont le comportement est largement défini par l'implémentation pour les classes standard.

Dans la fonction, un objet Sentry est d'abord créé avant que la séquence d'entrée ne soit accessible. Ensuite (en cas de succès), il appelle la fonction membre dans la bénéfice de l'objet de tampon de flux pour déterminer le nombre de caractères maintenant avant d'appeler «SBUMPC» pour extraire ce nombre de caractères (ou SGETC). L'objet Sentry est finalement détruit avant son départ.

iStream :: Seekg
La position dans la ligne d'entrée détermine où le caractère suivant sera tiré du flux d'entrée. Avant de lire la séquence d'entrée, la fonction construit en interne un objet Sentry. Ensuite (si OK), il fait l'un des deux appels à l'objet de tampon de flux correspondant: pubseekpos (1) ou pubseekoff (2), (le cas échéant). Enfin, il efface l'article Sentry et part.

iStream :: Sync
Alignez le tampon d'entrée:

Met la séquence d'entrée contrôlée du tampon de flux lié en synchronisation. L'implémentation spécifique de l'objet tampon de flux connecté au flux détermine les détails de l'opération.

iStream :: Tellg
Obtenez la position de la séquence d'entrée:

Il donne la position du caractère actuel dans le flux d'entrée. La fonction renvoie alors -1. Si le membre échoue, il renvoie vrai.

Il renvoie rdbuf () -> pubseekoff sinon (0, cur, in). L'objet Sentry est finalement détruit avant son départ.

iStream :: Unget
Supprimer le caractère:

Essaie de déplacer le curseur sur un caractère dans le flux afin que le dernier caractère récupéré du flux puisse à nouveau être extrait par des opérations d'entrée.

Non membre

Opérateur >> (IStream)
L'opérateur d'extraction (>>) fournit une entrée formatée avec cette action lorsqu'elle est appliquée à un flux d'entrée.

Un personnage: la séquence de personnage en retire le personnage suivant et le stocke comme la valeur de «C». Le processus d'extraction des caractères de IS et de les stocker en S, en tant que corde C, s'arrête (si la largeur n'est pas nul) lorsqu'un caractère blanc est rencontré ou (width () -1) des caractères ont été extraits.

Extraction de RValue: permet d'extraire des objets iStream RValue, qui a le même résultat que l'extraction de LValues: il appelle >> Val.

Exemple 1

Dans ce cas, nous examinerions comment nous pouvons obtenir n'importe quelle valeur de l'utilisateur, puis l'afficher comme le résultat à l'écran.

#inclure
Utilisation de Namespace Std;
int main()

int no;
couter<<"Please enter a number ";
cin >> Non;
couter<<"The entered value is: " << no << "\n";

Nous inclurions le fichier d'en-tête. Ensuite, nous utiliserons l'espace de noms 'std' dans l'espace de noms standard. Nous appellerions la fonction main (). Une variable nommée «NO» sera déclarée dans cette méthode. Le type de données «int» est représenté pour cette variable. Le terme «int» est l'abréviation d'un entier. Par la suite, la déclaration «cout» est utilisée. Cette commande imprime la ligne.

L'utilisateur saisira toute valeur aléatoire après que ce texte a été affiché à l'écran. Ensuite, la déclaration «CIN» aurait été utilisée. Cette commande oblige l'utilisateur à indiquer la valeur. Le numéro entré de l'utilisateur serait enregistré dans une variable. La valeur fournie par l'utilisateur serait affichée à l'écran à l'aide de la commande 'cout'.

Exemple 2

Dans ce cas, nous verrions comment nous obtenons un nom de l'utilisateur, puis le montrions à l'écran comme le résultat.

#inclure
Utilisation de Namespace Std;
int main()

Nom de char [125];
couter << "Enter your name" << endl;
cin >> ws;
cin.getline (nom, 125);
couter << name << endl;
retour 0;

Nous incorporons le fichier d'en-tête . Ensuite, nous utiliserons l'espace de noms standard comme «STD». Nous invoquerions la fonction principale (). Dans cette méthode, nous déclarerons une variable. Cette variable contient le type de données «char». Ensuite, la déclaration «cout» est utilisée. Cette commande affiche le texte «Entrez votre nom» à l'écran. Après avoir affiché ce texte à l'écran, l'utilisateur saisirait n'importe quel nom. Ensuite, nous utiliserions la déclaration «CIN».

Cette commande prend la valeur de l'utilisateur. Le nom fourni serait stocké dans une variable «ws». Ici, encore une fois, nous utiliserions la commande «Cin». Dans cette commande, la fonction getline () est appliquée. Cette fonction contient le paramètre qui comprend le nom entré par l'utilisateur et la longueur du nom. La commande 'cout' sera utilisée pour afficher le nom fourni par l'utilisateur. Pour terminer le code, la commande «return 0» sera utilisée.

Conclusion

Tout d'abord, nous avons parlé de ce que sont les fonctions C ++ IStream. Ensuite, nous observons plusieurs fonctions et définitions importantes mentionnées. Dans cet article, nous avons exécuté différents codes qui contiennent une variété de fonctions iStream. Dans le premier code, nous prenons un numéro de l'utilisateur et affichons ce numéro à l'écran. Dans le second, l'utilisateur a entré le nom et a imprimé ce nom à l'écran.