Предварительная / пост / в -заказ записи в текстовый файл (3 текстовых файла)

я работаю над Ubuntu64 бит (с ++)
У меня есть двоичное дерево и код работает хорошо … но мне нужно создать 3 TXT-файла (preorder.txt, inorder.txt, postorder.txt) с числами .. Когда я запускаю свой код, я получил все, но только в терминал .. и я не знаю, как записать эту 3 вещь в текстовый файл. Спасибо за прочитал мою драму ..

это то, что я вижу после запуска моего кода

но я также копирую здесь терминал:

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,
postorder


Так что мне нужно:

  1. preorder.txt
  2. inorder.txt
  3. postorder.txt

с цифрами

это мой первый вопрос .. и простите за плохой английский

-1

Решение

но мне нужно создать 3 TXT-файл (preorder.txt, inorder.txt, postorder.txt)
с номерами

Итак, код, на который вы указали, имеет в качестве одного примера:

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, поэтому весь вывод идет на вывод std, который по умолчанию часто отображается на экране пользователя.


Теперь рассмотрим эту легкую модификацию:

void btree::inorder_print(std::ostream& ostrm = std::cout){
inorder_print(root, ostrm);
ostrm << "\n";
}

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

Ваш существующий код будет работать как прежде, потому что cout вводится как параметр по умолчанию, а cout является std :: ostream.

Чтобы изменить направление вывода, вы просто открываете ostream для желаемого пути и передаете его этим функциям. Не забудьте закрыть


Обзор: «рабочий» код модифицируется для принятия пункта назначения (по умолчанию используется cout).

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector