我试图定义这个内联函数。它会创建一个决策树(在操作研究中使用的特定二叉树)。fstream不会写在文件上,直到endl
这是代码:
inline void printTreeFile(int* i_node,int* j_node,int* q_infr,int* value,int nStart,int level,std::fstream& tree)
{ int spazi=0,len,stop;
for(int actual_level=0;actual_level<level;actual_level++)
{spazi+=9;
if(i_node[actual_level]==0)
len=1;
else
len=(int)log10(i_node[actual_level])+1;
spazi+=len;
if(j_node[actual_level]==0)
len=1;
else
len=(int)log10(j_node[actual_level])+1;
spazi+=len;
if(q_infr[actual_level]==0)
len=1;
else
len=(int)log10(q_infr[actual_level])+1;
spazi+=len;
}
if(value[level]==0)
{
tree<<"-->("<<i_node[level]<<","<<j_node[level]<<","<<q_infr[level]<<"=1)";
tree<<endl;
for(int i=0;i<spazi;i++)
tree<<" ";
tree<<"-->("<<i_node[level]<<","<<j_node[level]<<","<<q_infr[level]<<"=0)";
}
else
tree<<"-->("<<i_node[level]<<","<<j_node[level]<<","<<q_infr[level]<<"=1)";
//cin>>stop;
}
的std::fstream& tree
在主定义为:
fstream tree;
remove("tree");
tree.open("tree",ios::out|ios::app);
我不明白,为什么在执行命令tree<<endl;
tree
是空的
我需要看看这棵树如何在不等待这个命令的情况下自我演化......任何人都知道这个问题的解决方案? 感谢所有会回答!
流有一个缓冲区。你必须调用flush()来强制执行写操作。 std :: endl添加一个'\ n'并调用flush()。 –