C ++ ofstream创建和写入文件问题

时间:2013-09-07 20:33:59

标签: c++ std filestream

我的虚拟文件系统提取器出了问题。

ofstream ofs(path, ios::out|ios::binary);

ofs.write(file, length);
ofs.close();

Path是一个例子“data / char / actormotion.txt”,应该在名为actormotion.txt的目录data / char / file中创建文件但是没有做任何事情。

2 个答案:

答案 0 :(得分:0)

检查它是否先打开

      std::ofstream ofs(path, ios::out|ios::binary);
      if (ofs.is_open())
      {
// write stuff
        ofs.close();
      }
      else
      {
        std::cout << "Error opening file";
      }

答案 1 :(得分:-1)

更有可能的文件未打开。您可以使用bool is_open()方法进行检查。

建议打开流后检查其状态以确保一切顺利:

ofstream ofs(path, ios::out|ios::binary);
if ( (ofs.rdstate() & std::ofstream::failbit ) != 0 ){
    //stream opened successfully, do the stuff...

在Windows系统中,您可以在调用错误代码后立即调用GetLastError()