什么是509文件的“神奇”?

时间:2017-10-02 23:16:47

标签: c++ visual-c++

当我制作550(或更多)对象(包含ofstreams)的数组时,首先 509 对象是'好'对象(有文件等),但是其他对象是'错误的'。
不知道我弄错了什么。
也许需要特殊的ofstream初始化?

此问题适用于“调试”和“发布”版本。
代码(C ++)(在Microsoft Visual C ++ 2012下编译):

#include <iostream>
#include <fstream>
using namespace std;

class C {
    int n;
    ofstream f;
public:
    C() {n=1;}
    void Bind(char* filename);
};

void C::Bind(char* filename) {
    f.open(filename,ios::binary);
    if (!f)  cout << "file " << filename << " Error..." << endl;
}

int main() {
    C *c = new C[550];
    for (int i=0;i<550;i++) {
        char filename[256];
        sprintf_s(filename, "file-%03d.bin", i);
        c[i].Bind(filename);
    }
    return 0;
}

输出是:

  

file file-509.bin错误...
  file file-510.bin错误...
  file file-511.bin错误...
  file file-512.bin错误...
  file file-513.bin错误...
  ...... ......

这些509文件有什么神奇之处?
如何为包含550(或更多)对象的数组更正此代码?

谢谢!

0 个答案:

没有答案