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!

È stato utile?

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
scroll top