In C ++, puoi impostare manualmente il failbit di uno stream? Come?
-
08-07-2019 - |
Domanda
Sto sovraccaricando l'operatore del flusso di input per l'uso con una classe Time e vorrei impostare manualmente il failbit del flusso di input se l'input non corrisponde al mio formato di tempo previsto (hh: mm). Può essere fatto? Come?
Grazie!
Soluzione
Sì, puoi impostarlo con ios :: setstate
, in questo modo:
#include <iostream>
#include <ios>
int main()
{
std::cout << "Hi\n";
std::cout.setstate(std::ios::failbit);
std::cout << "Fail!\n";
}
Il secondo output non verrà prodotto perché cout
è nello stato non riuscito.
(Un'eccezione mi sembra più pulita, ma YMMV)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow