Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maestro1992
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 3
#1

Ошибка при выводе строки - C++

23.09.2010, 10:26. Просмотров 379. Ответов 3
Метки нет (Все метки)

Подскажите в чем дело??

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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class BinarySearchTree
{
private:
    struct tree_node
    {
        tree_node* left;
        tree_node* right;
        string eng,rus;
    };
    tree_node* root;     // это только фрагмент класса...
 
void BinarySearchTree::inorder(tree_node* p)
{
    if(p != NULL)   
    {
        if(p->left) inorder(p->left);
        cout<<" "<<p->eng<<" "<<endl;
        if(p->right) inorder(p->right);
    }
    else return;
}
не хочет выводить строку eng переменная типа string.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 10:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при выводе строки (C++):

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе - C++
Не могу найти ошибку в цикле. Суть такая: &quot;вывести на дисплей фамилии и номера групп для всех студентов, включенных в массив, имеющих хотя...

Пропадают строки при выводе в консоль - C++
куда-то пропадают строки. например: for(int q=0;q&lt;10;q++){ cout&lt;&lt;q&lt;&lt;&quot;-q&quot;; for(int w=0;w&lt;10;w++){cout&lt;&lt;w&lt;&lt;&quot;-w&quot;; ...

При выводе пропускает пустые строки - C++
{ FILE *f1; char c, txt; int n=0; cout&lt;&lt;&quot;Vvedite imia fila &quot;; gets(c); f1=fopen(c,&quot;r&quot;); fscanf (f1, &quot;%d&quot;,...

Ошибка при выводе значения - C++
Здравствуйте,решая задание: Вычислить рекурсивно и нерекурсивно произведение четного количества n (n &lt;= 2) сомножителей следующего вида y...

Ошибка при выводе дерева - C++
#include &lt;iostream&gt; using namespace std; struct node { int inf; node *left; node *right; };

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
23.09.2010, 10:35 #2
структуру специально сделали закрытой?
и желательно полный текст покажите!
maestro1992
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 3
23.09.2010, 10:45  [ТС] #3
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
 
class BinarySearchTree
{
private:
    struct tree_node
    {
        tree_node* left;
        tree_node* right;
        string eng,rus;
    };
    tree_node* root;
public:
    BinarySearchTree()
    {
        root = NULL;
    }
    bool isEmpty() const { return root==NULL; }
    void print_inorder();
    void inorder(tree_node*);
    void insert(string s1, string s2);
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    BinarySearchTree a;
    a.insert("exit","vihod");
    a.insert("creative","dobavit");
    a.insert("bread","hleb");
    a.insert("add","dobavit");
    a.print_inorder();
    getch();
    return 0;
}
 
 
void BinarySearchTree::insert(string s1, string s2)
{
    tree_node* t = new tree_node;
    tree_node* parent;
    t->eng = s1;
    t->rus = s2;
    t->left = NULL;
    t->right = NULL;
    parent = NULL;
    
    if(isEmpty()) root = t;
    else
    {
        
        tree_node* curr;
        curr = root;
        
        while(curr)
        {
            parent = curr;
            if(t->eng[1] > curr->eng[1]) curr = curr->right;
            else curr = curr->left;
        }
 
        if(t->eng[1] < parent->eng[1])
            parent->left = t;
        else
            parent->right = t;
    }
}
 
    void BinarySearchTree::print_inorder()
{
    inorder(root);
}
 
void BinarySearchTree::inorder(tree_node* p)
{   if(p != NULL)   
    {
        if(p->left) inorder(p->left);
            cout<<" "<<p->eng<<" "<<endl;
        if(p->right) inorder(p->right);
    }
    else return;
}
вот полный текст...
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.09.2010, 10:50 #4
maestro1992, gcc кстати все прожевал и все вывел. но ради интереса попробуйте подключить не string.h, а
C++
1
#include <string>
так правильнее, потому что string.h это Си заголовок, никаких классов std::string там само собой не может быть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2010, 10:50
Привет! Вот еще темы с ответами:

Ошибка при выводе на экран - C++
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...

ошибка при выводе в последовательности sn на с++ - C++
sn- это подсчет суммы ряда не могу понять почему одинаково значение при выполнении программы до 5 считает нормально, а затем зеркально...

Ошибка при выводе символов - C++
Не отображается русскими буквами текст который я ввожу. Помогите, пожалуйста) #include &lt;iostream&gt; #include &lt;string&gt; #include...

Ограничение ширины строки при выводе в консоль - C++
Класс выводит строку в консоли. Как сделать, чтобы ширина выводимых строк была равна characterWidth = 40, т.е. после 40 символов был...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.09.2010, 10:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru