Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922

Стандартный поток вывод

21.04.2013, 23:12. Показов 3507. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть такая задача по текстовому файлу построить дерево с возможностью выбора ветви дерева и глубины вложения отображаемых элементов с выводом в стандартный поток вывод. Дерево строится, вот вопрос как сделать вывод. Даже не могу понять что такое стандартный поток вывод. Дерево строил в билдере treeview компонент. Прошу помощи со стандартным потоком.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2013, 23:12
Ответы с готовыми решениями:

Стандартный поток ввода
В условии задачи написано: на стандартном потоке ввода задаётся последовательность целых чисел. Вся эта последовательность завершается...

Стандартный входной поток
Добрый день, помогите разобраться. Хочу написать функцию, которая читает из входного потока некое количество данных вида...

Стандартный поток ввода
Доброго времени суток. Допустим есть код: double d; cin >> d; Допустим, в потоке ввода символы "12.e",...

24
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 11:00
Цитата Сообщение от Joker_vad Посмотреть сообщение
Даже не могу понять что такое стандартный поток вывод.
Стандартный поток вывода. http://www.cplusplus.com/reference/iostream/cout/
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 11:21  [ТС]
а как вывести ветвь дерева в этот поток?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 11:27
Цитата Сообщение от Joker_vad Посмотреть сообщение
а как вывести ветвь дерева в этот поток?
Зависит от того как Вы хотите ее представить в текстовом виде.
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 11:49  [ТС]
текст+номер+номерпредка например
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 11:59
Joker_vad, реализуйте оператор << для своего класса (наверное для узла дерева):
C++
1
2
3
4
5
friend std::ostream& operator<< ( std::ostream& o, const Node& node )
{
    o << node.text << node.id << node.parent_id; // и т.д.
    return o;
}
А там где нужно выводить на консоль, будете писать:
C++
1
std::cout << node << std::endl;
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 15:31  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Edit1->Text=="")
{
        ShowMessage("Âûáåðåòå ôàéë");
        return;
}
TStringList*list=new TStringList;
boolean fl=True;
list->LoadFromFile(Edit1->Text);
int count = list->Count+1;
zap*z = new zap[count];
addzap*azap = new addzap[count];
AnsiString str="";
int i=0;
int mcount=0;
int addcount=0;
int wcount=0;
for (i=0;i<list->Count;i++)
{
  str = list->Strings[i];
  int LastPos = LastDelimiter("#",str);
  int Firstpos = str.Pos("#");
  z[i].n=StrToInt(str.SubString(1,Firstpos-1));
  z[i].text=str.SubString(Firstpos+1,LastPos-1-Firstpos).Trim();
  if (str.SubString(LastPos+1,str.Length()).Trim()=="")
     z[i].n_r=0;
  else
     z[i].n_r=StrToInt(str.SubString(LastPos+1,str.Length()));
}
for(i=0;i<count;i++)
{
  if(z[i].n_r==0)
  {
    addcount=0;
    wcount=0;
    fl=True;
    TTreeNode*kor = TreeView1->Items->Add(NULL,z[i].text);
    azap[addcount].nod=kor;
    azap[addcount].nom=z[i].n;
      for(int j=0;j<count;j++)
        for (int k=0;k<=addcount;k++)
          if (z[j].n_r==azap[k].nom)
          {
            kor=TreeView1->Items->AddChild(azap[k].nod,z[j].text);
            addcount=addcount+1;
            azap[addcount].nod=kor;
            azap[addcount].nom=z[j].n;
          }
  }
}
вот коду куда что добавлять расскажите пожалуйста, не могу разобраться
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 15:50
Цитата Сообщение от Joker_vad Посмотреть сообщение
куда что добавлять расскажите пожалуйста, не могу разобраться
Вероятно в тип zap или addzap. Смотря какие поля нужно отобразить.
И, учитывая, что проект у Вас с графическим интерфейсом нужно еще создать консоль.
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 15:56  [ТС]
мб стоило делать все без графического интерфейса? в задаче указано построить дерево на основе текстового файла и потом вывести ветвь в поток.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 16:00
Joker_vad, если про GUI четко не сказано, то проще обойтись обычным консольным приложением.
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 16:01  [ТС]
Четко понял что окончательно запутался))) Как я понимаю уже не в билдире создавать данное приложение? Если не в нем подскажите плиз в чем) буду дальше разбираться
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 16:04
Joker_vad, можно и в билдере. Просто тип проекта надо выбрать другой (Console Application). Можно и в Visual Studio. Да и много где еще
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 16:17  [ТС]
Почитал задание еще раз. Нужно разработать программный модуль (библиотеку) это не длл библиотека?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 16:26
Цитата Сообщение от Joker_vad Посмотреть сообщение
Нужно разработать программный модуль (библиотеку) это не длл библиотека?
Не обязательно. Может быть просто библиотека статической линковки.
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
22.04.2013, 21:38  [ТС]
а если в этом приложении создать консоль через AllocConsole() и в ней уже выводить ветку в стандартный поток? Так можно?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.04.2013, 22:31
Joker_vad, можно. Я писал об этом в 8 сообщении.
1
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
23.04.2013, 13:38  [ТС]
делаю так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void showChild(TTreeNode* nd);
void __fastcall TForm1::Button4Click(TObject *Sender)
{
TTreeNode*nd=TreeView1->Selected;
FreeConsole();
AllocConsole();
 
freopen("CONOUT$", "wt", stdout);
//SetConsoleTitle("Standart potok");
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
showChild(nd);
}
 
void showChild(TTreeNode* nd)
{
TTreeNode*child=nd->getFirstChild();
while (child)
{
   std::cout<<rus(child->Text.c_str())<<std::endl;
   showChild(child);
   child = nd->GetNextChild(child);
}
}
по закрытию приложения выполняю FreeConsole(); но приложение закрывается с ошибкой. Если не создавать консоль закрывается норм. В чем может быть дело?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.04.2013, 13:40
Joker_vad, могу предположить, что не гуд делать так:
C++
1
2
FreeConsole();
AllocConsole();
Предлагаю AllocConsole(); вынести в конструктор TForm1, а FreeConsole(); в деструктор.
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
23.04.2013, 14:32  [ТС]
C++
1
2
/* TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) {FreeConsole(); }
    /* TCustomForm.Create */ inline __fastcall virtual TForm(Classes::TComponent* AOwner) : TCustomForm(AOwner) {AllocConsole(); }
это сюда? если сюда то не помогло
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.04.2013, 15:01
Цитата Сообщение от Joker_vad Посмотреть сообщение
virtual TForm
виртуальный конструктор?
А какую ошибку выводит, дословно приведите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2013, 15:01
Помогаю со студенческими работами здесь

Задача на стандартный поток ввода
Привет :) Читаю книгу Страуступа. Дошёл до 5-ой главы, тут есть одно упражнение. Пытался его выполнить не получилось (часто стал...

Стандартный поток ввода, конец файла
Что считается концом файла на стандартном потоке ввода. То есть, по сути, на scanf?

Где определён стандартный поток stdin?
Где определён стандартный поток stdin, в какой библиотеке?. Смотрел в инете ничего не нашёл. ошибка такого рода: «stdin» undeclared...

Как вывести номер итератора в стандартный поток cout
Есть пример решенный. Там необходимо ввести числа, cin их считывает и заносит в вектор, каждое как отдельный элемент, при выходе их надо...

Стандартный поток и STL (std::copy to std::cout)
#include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;algorithm&gt; #include &lt;functional&gt; #include &lt;string&gt; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru