为for循环中的大量文件创建大量的Ofstream编写器指针

时间:2017-11-09 09:55:47

标签: c++ c++11 pointers heap-memory ostream

我正在尝试创建大量(大约57000个)特定文件的流指针,因此每当我收到数据时,我都可以在特定文件中编写它。

在1021指针之后,指向文件的指针变得腐败。 以下是示例代码及其日志:

#include <iostream>     // std::cout, std::ios
#include <sstream>      // std::stringstream
#include <fstream>
#include <string>


int main () {


    int count = 0;
    for (int i =0; i<60000; i++)
    {
        count++ ;
        std::string filename = "abc" + std::to_string(i) + "_data" ;
        std::ofstream* abc = new std::ofstream( filename.c_str(), std::ios::app );;
        std::cout << "isGood->" << abc->good() <<",count=" << count << ",filname="<< filename << std::endl;
    }

    return 0;
}

上述代码的输出日志:

...
...
isGood->1,count=1011,filname=abc1010_data
isGood->1,count=1012,filname=abc1011_data
isGood->1,count=1013,filname=abc1012_data
isGood->1,count=1014,filname=abc1013_data
isGood->1,count=1015,filname=abc1014_data
isGood->1,count=1016,filname=abc1015_data
isGood->1,count=1017,filname=abc1016_data
isGood->1,count=1018,filname=abc1017_data
isGood->1,count=1019,filname=abc1018_data
isGood->1,count=1020,filname=abc1019_data
isGood->1,count=1021,filname=abc1020_data
isGood->0,count=1022,filname=abc1021_data
isGood->0,count=1023,filname=abc1022_data
isGood->0,count=1024,filname=abc1023_data
isGood->0,count=1025,filname=abc1024_data
isGood->0,count=1026,filname=abc1025_data
isGood->0,count=1027,filname=abc1026_data
isGood->0,count=1028,filname=abc1027_data
...
...

isGood之后的零是问题,它表示文件不存在或无法写入。

感谢。

0 个答案:

没有答案