C++11 文件未在c+中第二次打开+;

C++11 文件未在c+中第二次打开+;,c++11,memory-management,malloc,C++11,Memory Management,Malloc,我正在尝试使用此代码打开一个文件,该代码将被多次调用。第一次打开文件,但第二次调用时,我在fp1.open上遇到一些错误。。。。行,即: Error in `/home/prosun/Desktop/workspace/fight/Default/fight': corrupted double-linked list: 0x0000000000675310 守则: void Writedata::write_file(){ ofstream fp1; int i;

我正在尝试使用此代码打开一个文件,该代码将被多次调用。第一次打开文件,但第二次调用时,我在fp1.open上遇到一些错误。。。。行,即:

Error in `/home/prosun/Desktop/workspace/fight/Default/fight': corrupted double-linked list: 0x0000000000675310
守则:

void Writedata::write_file(){

    ofstream fp1;
    int i;

    fp1.open ("output/data.txt", ios::out | ios::app);
    for(int i = 0; i < 10; i++){
         cout.width(10); fp1 << i << endl;
    }
    fp1.close();
}
void Writedata::write_file(){
流fp1;
int i;
fp1.open(“output/data.txt”,ios::out | ios::app);
对于(int i=0;i<10;i++){

cout.width(10);fp1您无法编译的代码,括号不平衡。请解决这个问题。-您不依赖RAII。只需使用流fp1的
(“output/data.txt”,ios::out | ios::app);
并且不调用
。打开
也不调用
。关闭
。然后这个
cout.width()
调用不会更改文件的任何内容,您可能希望使用
括号将
宽度
流式传输到
fp1
。这只是一个错误。我说的是文件打开。从另一个函数调用时第一次打开文件并打印I值。但是当第二次调用时然后显示上面的错误。问题在fp1.open(..)行。这很奇怪。错误是“损坏的双链接列表”此函数内部发生的情况?我怀疑您没有发布足够的代码来重现错误。您只是多次调用此代码吗?我多次调用此函数。第一次文件正在打开并写入信息。当第二次调用此函数时,请在这一行->fp1.open(“output/data.txt”,ios::out | ios::app)显示错误。