预/后/按顺序写入txt文件(3个txt文件)

时间:2018-12-07 03:31:27

标签: c++

我正在研究ubuntu64位(c ++) 我有一棵二叉树并且代码运行良好..但是我需要用数字创建3个txt文件(preorder.txt,inorder.txt,postorder.txt)。当我运行我的代码时,我得到了所有东西,但仅仅是终端..我不知道如何将这3件事写到txt文件中。谢谢您阅读我的戏曲。.

this is what i see after running my code

但是我也在这里复制终端:

  

vilmos @ ubuntu:〜$ g ++ binfa1.cpp   vilmos @ ubuntu:〜$ ./a.out   10,5,6,8,11,14,18,    预购   5,6,8,10,11,14,18,    为了   5,6,8,11,14,18,10,    邮购


所以我需要:

  
      
  1. preorder.txt
  2.   
  3. inorder.txt
  4.   
  5. postorder.txt
  6.   

以及数字

这是我的第一个问题。.抱歉英语不好

1 个答案:

答案 0 :(得分:0)

  

但是我需要创建3个txt文件(preorder.txt,inorder.txt,postorder.txt)   用数字

因此,您所指向的代码有一个例子:

FOREIGN_KEY   CHILD_TABLE   CHILD_COLUMN   POSITION   PRI_OR_UNIQ_KEY   PARENT_TABLE   PARENT_COLUMN   
-----------   -----------   ------------   --------   ---------------   ------------   -------------
T2_FK_1       T2            T1_ID                   1 T1_PK             T1             ID              
T2_FK_2       T2            T1_UNIQ1                1 T1_UK             T1             UNIQ1           
T2_FK_2       T2            T1_UNIQ2                2 T1_UK             T1             UNIQ2           

就像我猜到的那样,这些函数使用cout,因此所有输出都将输出到std输出,该输出通常默认为用户屏幕。


现在考虑进行此灯光修改:

void btree::inorder_print(){
    inorder_print(root);
    cout << "\n";
}

void btree::inorder_print(node *leaf){
    if(leaf != NULL){
        inorder_print(leaf->left);
        cout << leaf->value << ",";
        inorder_print(leaf->right);
    }
}

您的现有代码将像以前一样工作,因为将cout作为默认参数输入,并且cout是std :: ostream。

要更改输出的位置,只需打开一个ostream到所需的路径,然后将其传递给这些函数即可。不要忘记关闭。


概述:修改了“工作”代码以接受目的地(默认为cout)。