Namespaces
Variants

std::chrono:: from_stream (std::chrono::month_day)

From cppreference.net

Défini dans l'en-tête <chrono>
template < class CharT, class Traits, class Alloc = std:: allocator < CharT > >

std:: basic_istream < CharT, Traits > &
from_stream ( std:: basic_istream < CharT, Traits > & is, const CharT * fmt,
std:: chrono :: month_day & md,
std:: basic_string < CharT, Traits, Alloc > * abbrev = nullptr,

std:: chrono :: minutes * offset = nullptr ) ;
(depuis C++20)

Tente d'analyser le flux d'entrée is dans le std::chrono::month_day md selon la chaîne de format fmt .

Se comporte comme une UnformattedInputFunction , sauf qu'elle a un effet non spécifié sur is. gcount ( ) . Après avoir construit et vérifié l'objet sentinelle, tente d'analyser le flux d'entrée is dans md selon la chaîne de format fmt . Si l'analyse échoue à décoder un month_day valide, is. setstate ( std:: ios_base :: failbit ) est appelé et md n'est pas modifié.

Si le spécificateur de format %Z est utilisé et analysé avec succès, la valeur analysée est assignée à * abbrev si abbrev n'est pas nul. Si le spécificateur de format %z ou une variante modifiée est utilisé et analysé avec succès, la valeur analysée est assignée à * offset si offset n'est pas nul.

Table des matières

Paramètres

is - un flux d'entrée
fmt - une chaîne de format (voir ci-dessous)
md - objet pour contenir le résultat de l'analyse
abbrev - si non nul, pointeur vers un objet qui contiendra l'abréviation ou le nom du fuseau horaire correspondant au %Z spécificateur
offset - si non nul, pointeur vers un objet qui contiendra le décalage par rapport à UTC correspondant au %z spécificateur

Chaîne de format

La chaîne de format est constituée de zéro ou plusieurs spécificateurs de conversion et de caractères ordinaires. Chaque caractère ordinaire, à l'exception des caractères d'espacement et du caractère nul de fin, correspond à un caractère identique provenant du flux d'entrée, ou provoque l'échec de la fonction si le caractère suivant dans le flux n'est pas égal par comparaison.

Chaque caractère d'espacement correspond à zéro ou plusieurs caractères d'espacement dans le flux d'entrée.

Chaque spécificateur de conversion non modifié commence par un % suivi d'un caractère qui détermine le comportement du spécificateur. Certains spécificateurs de conversion ont une forme modifiée dans laquelle un caractère modificateur E ou O est inséré après le caractère % . Certains spécificateurs de conversion ont une forme modifiée dans laquelle un paramètre de largeur donné sous forme d'entier décimal positif (représenté comme N ci-dessous) est inséré après le caractère % . Chaque spécificateur de conversion amène les caractères correspondants à être interprétés comme des parties de types date et heure selon le tableau ci-dessous.

Une séquence de caractères dans la chaîne de format qui commence par un % mais ne correspond à aucun des spécificateurs de conversion ci-dessous est interprétée comme des caractères ordinaires.

Si from_stream ne parvient pas à analyser tout ce qui est spécifié par la chaîne de format, ou si des informations insuffisantes sont analysées pour spécifier un résultat complet, ou si l'analyse révèle des informations contradictoires, is. setstate ( std:: ios_base :: failbit ) est appelé.

Les spécificateurs de conversion suivants sont disponibles :

Spécificateur
de conversion
Explication
%% Correspond à un caractère % littéral.
%n Correspond à un caractère d'espacement.
%t Correspond à zéro ou un caractère d'espacement.
Année
%C
% N C
%EC
Analyse le siècle comme un nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros en tête sont autorisés mais pas obligatoires.

La commande modifiée %EC interprète la représentation alternative du siècle selon les paramètres régionaux.

%y
% N y
%Ey
%Oy
Analyse les deux derniers chiffres décimaux de l'année. Si le siècle n'est pas spécifié autrement (par exemple avec %C), les valeurs dans la plage [69, 99] sont présumées se référer aux années 1969 à 1999, et les valeurs dans la plage [00, 68] sont présumées se référer aux années 2000 à 2068. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros non significatifs sont autorisés mais pas obligatoires.

Les commandes modifiées %Ey et %Oy interprètent la représentation alternative de la locale.

%Y
% N Y
%EY
Analyse l'année en tant que nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 4. Les zéros en tête sont autorisés mais pas obligatoires.

La commande modifiée %EY interprète la représentation alternative de la locale.

Mois
%b
%B
%h
Analyse le nom complet ou abrégé du mois, insensible à la casse, selon les paramètres régionaux.
%m
% N m
%Om
Analyse le mois sous forme de nombre décimal (janvier correspond à 1 ). La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros initiaux sont autorisés mais pas obligatoires.

La commande modifiée %Om interprète la représentation alternative de la locale.

Jour
%d
% N d
%Od
%e
% N e
%Oe
Analyse le jour du mois comme un nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros non significatifs sont autorisés mais pas obligatoires.

Les commandes modifiées %Od et %Oe interprètent la représentation alternative de la locale.

Jour de la semaine
%a
%A
Analyse le nom complet ou abrégé du jour de la semaine, insensible à la casse, selon les paramètres régionaux.
%u
% N u
Analyse le jour de la semaine ISO sous forme de nombre décimal (1-7), où lundi correspond à 1 . La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 1. Les zéros initiaux sont autorisés mais non requis.
%w
% N w
%Ow
Analyse le jour de la semaine comme un nombre décimal (0-6), où dimanche est 0 . La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 1. Les zéros non significatifs sont autorisés mais pas obligatoires.

La commande modifiée %Ow interprète la représentation alternative de la locale.

Année ISO 8601 basée sur les semaines

Dans la norme ISO 8601, les semaines commencent le lundi et la première semaine de l'année doit satisfaire aux exigences suivantes :

  • Inclut le 4 janvier
  • Inclut le premier jeudi de l'année
%g
% N g
Analyse les deux derniers chiffres décimaux de l'année basée sur la semaine ISO 8601. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros en tête sont autorisés mais non obligatoires.
%G
% N G
Analyse l'année ISO 8601 basée sur les semaines sous forme de nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 4. Les zéros non significatifs sont autorisés mais pas obligatoires.
%V
% N V
Analyse la semaine ISO 8601 de l'année sous forme de nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros non significatifs sont autorisés mais pas obligatoires.
Semaine/jour de l'année
%j
% N j
Analyse le jour de l'année sous forme de nombre décimal (le 1er janvier est 1 ). La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 3. Les zéros non significatifs sont autorisés mais pas obligatoires.
%U
% N U
%OU
Analyse le numéro de la semaine de l'année en tant que nombre décimal. Le premier dimanche de l'année est le premier jour de la semaine 01. Les jours de la même année antérieurs à celui-ci sont dans la semaine 00. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros en tête sont autorisés mais pas obligatoires.

La commande modifiée %OU interprète la représentation alternative de la locale.

%W
% N W
%OW
Analyse le numéro de la semaine de l'année en tant que nombre décimal. Le premier lundi de l'année est le premier jour de la semaine 01. Les jours de la même année antérieurs à celui-ci sont dans la semaine 00. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros en tête sont autorisés mais pas obligatoires.

La commande modifiée %OW interprète la représentation alternative de la locale.

Date
%D Équivalent à "%m/%d/%y" .
%F
% N F
Équivalent à "%Y-%m-%d" . Si la largeur est spécifiée, elle est uniquement appliquée au %Y .
%x
%Ex
Analyse la représentation de date de la locale.

La commande modifiée %Ex interprète la représentation de date alternative de la locale.

Heure de la journée
%H
% N H
%OH
Analyse l'heure (format 24 heures) sous forme de nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros initiaux sont autorisés mais pas obligatoires.

La commande modifiée %OH interprète la représentation alternative de la locale.

%I
% N I
%OI
Analyse l'heure (horloge 12 heures) sous forme de nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros initiaux sont autorisés mais non obligatoires.

La commande modifiée %OI interprète la représentation alternative de la locale.

%M
% N M
%OM
Analyse la minute sous forme de nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros non significatifs sont autorisés mais pas obligatoires.

La commande modifiée %OM interprète la représentation alternative de la locale.

%S
% N S
%OS
Analyse la seconde comme un nombre décimal. La largeur N spécifie le nombre maximum de caractères à lire. La largeur par défaut est 2. Les zéros non significatifs sont autorisés mais pas obligatoires.

La commande modifiée %OS interprète la représentation alternative de la locale.

%p Analyse l'équivalent local des désignations AM/PM associées à une horloge de 12 heures.
%R Équivalent à "%H:%M" .
%T Équivalent à "%H:%M:%S" .
%r Analyse l'heure au format 12 heures de la locale.
%X
%EX
Analyse la représentation horaire de la locale.

La commande modifiée %EX interprète la représentation horaire alternative de la locale.

Divers
%c
%Ec
Analyse la représentation de la date et de l'heure de la locale.

La commande modifiée %Ec interprète la représentation alternative de la date et de l'heure de la locale.

%z
%Ez
%Oz
Analyse le décalage horaire par rapport à UTC au format [+|-]hh[mm] . Par exemple, -0430 correspond à 4 heures 30 minutes derrière UTC et 04 correspond à 4 heures devant UTC.

Les commandes modifiées %Ez et %Oz analysent le format [+|-]h[h][:mm] (c'est-à-dire en exigeant un : entre les heures et les minutes et en rendant le zéro initial pour l'heure facultatif).

%Z Analyse l'abréviation ou le nom du fuseau horaire, pris comme la plus longue séquence de caractères qui contient uniquement les caractères A à Z , a à z , 0 à 9 , - , + , _ , et / .

Valeur de retour

is

Voir aussi

(C++20)
analyse un objet chrono depuis un flux
(modèle de fonction)