我正在使用一個istream,可能是stringstream,ifstream或用戶定義的流類型,我需要知道,如果ifstream,它不是以二進制模式打開(所以我可以拋出異常) 。我試過以下方法:有沒有辦法檢查istream是否以二進制模式打開?
if ((_is.flags() & ios::binary) == 0)
throw exception(...)
但是沒有例外拋出。在這種情況下,測試失敗,因爲_is.flags()返回0x201,而ios :: binary是0x20。有沒有辦法找出流是否在文本模式下打開?
我很害怕這種情況。 – Ferruccio 2008-10-22 02:38:29