Tratamento de erros no std :: ofstream ao gravar dados

Eu tenho um pequeno programa em que inicializo uma string e escrevo em um fluxo de arquivos:

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
  std::ofstream ofs(file.c_str());
  string s="Hello how are you";
  if(ofs)
     ofs<<s;
  if(!ofs)
  {
       cout<<"Writing to file failed"<<endl;
  }
  return 0;
 }

Meu espaço em disco é muito menor e a declaração "ofs <"falha. Portanto, eu sei que isso é um erro logicamente.

A declaração"se (! ofs)" não encontrar o problema acima, portanto, não consigo saber por que ele falhou.

Por favor, diga-me, por quais outras opções eu seria capaz de saber que"ofs < falhou.

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion