Tenir compte de ce code:std :: setfill et std :: setw pour les flux d'entrée?
int xx;
std::cin >> std::setfill('0') >> std::setw(4) >> xx;
Lors de l'envoi 12
à l'entrée standard je me attends à la valeur de xx
être 1200
et lors de l'envoi 12345
je m'y attendais pas à être 1234
.
Cependant, il semble std::setfill
et std::setw
n'ont aucun effet et je reçois 12
et 12345
respectivement.
Est-ce un bug ou est-ce selon la norme? Y a-t-il un bon moyen d'obtenir la fonctionnalité attendue?
Notez également, lorsque je change le type de xx
être std::string
l'std::setw
prend effet alors que std::setfill
ne fait toujours pas.
Mon compilateur est gcc-7.0.1
.
Peut-être que je l'ai raté. Depuis quand 'std :: setfill' est-il supporté sur les opérations de flux * input *? Je sais que 'std :: setw' est, mais maintenant' std :: setfill' est trop ??? – WhozCraig
non, c'est du code mal formé. –
Je ne pense pas 'std :: setfill' supporté sur le flux d'entrée. http://en.cppreference.com/w/cpp/io/manip/setfill – Shravan40