我試圖定義這個內聯函數。它會創建一個決策樹(在操作研究中使用的特定二叉樹)。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()。 –