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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
#1

Не выводится содержимое динамического списка - C++

14.10.2012, 14:38. Просмотров 1491. Ответов 40
Метки нет (Все метки)

доброго времени суток.
структура с типом стринг, трем элементам структуры присваивается значение потом при попытки вывести одно из значений, тоесть обратится к списку через указатель выдает ошибку в строке вывода.
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
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include <tchar.h>
#include <string.h>
//---------------------------------------------------------------------------
 
struct lfile{
string name;
string data;
string upd;
    lfile*next;
}*start,*p;
void create_list(string a,string b,string c){
p = new lfile;
p->name=a;
p->data=b;
p->upd=c;
p->next = NULL;
start = p;
return;
}
char main(){
 setlocale(LC_ALL, "rus");
string a,b,c;
printf("Введите значение для первого элемента, создаваемого списка: ");
a="kot";
b="dog";
c="got";
cout<<p->name; \\ вот тут выдает ошибку
return 0;
}
ошибка такая [BCC32 Error] probstrukt.cpp(32): E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'string'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 14:38     Не выводится содержимое динамического списка
Посмотрите здесь:

Не выводится на экран элемент динамического массива - C++
Здравствуйте! Сразу прошу прощения за название темы, т.к. далее по тексту вы узнаете, что проблема относится не совсем к выводу на экран...

Не выводится содержимое массива - C++
Привет ребята! Задали такую задачку, код написал, но видать где-то косяк, массив из значений не выводит, а s2,k2,k3,p - выводит вот код...

А чего не выводится содержимое вектора? - C++
Здравствуйте. Новичок. Задача: Написать функцию которая считывает слова из входного потока и сохраняет их в векторе. Я придумал...

Выводится содержимое переменной, а не адрес - C++
Тип char. Почему выводится содержимое? pAdd-&gt;name=a.taskName; cout&lt;&lt;&amp;a.taskName&lt;&lt;endl;

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

Поместить в стек из динамического списка - C++
У меня такая задача: Последовательность вещественных чисел сохранить в динамическом списке. Поместить в стек все отрицательные числа,...

Сортировка динамического линейного списка - C++
Подскажите пожалуйста как вывести список книг изданных после указанного года.Я уже все пересмотрела везде только добавить -удалить.Это я...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.10.2012, 15:06     Не выводится содержимое динамического списка #2
Попробуйте #include <string.h> заменить на #include <string>, #include<iostream.h> на #include<iostream> и using namespace std; добавьте.
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 16:21  [ТС]     Не выводится содержимое динамического списка #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
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include <tchar.h>
#include <string>
//---------------------------------------------------------------------------
#include <conio.h>
struct lfile{
string name;
string data;
string upd;
    lfile*next;
}*start,*p;
void create_list(string a,string b,string c){
p = new lfile;
p->name=a;
p->data=b;
p->upd=c;
p->next = NULL;
start = p;
return;
}
main(){
setlocale(LC_ALL, "rus");
string a,b,c;
cout<<"Введите значение для первого элемента, создаваемого списка: ";
a="kot";
b="dog";
c="got";
cout<<start->name;
getch();
return 0;
}
Миниатюры
Не выводится содержимое динамического списка  
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.10.2012, 17:15     Не выводится содержимое динамического списка #4
Ну, сначала надо память выделить, а потом к ней обращаться:
C++
1
2
3
start=new (lfile);
start->name="dog"; //для наглядности 
cout<<start->name;
alsav22, у него, вероятно, borland стоит.
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 17:38  [ТС]     Не выводится содержимое динамического списка #5
Цитата Сообщение от lexflax Посмотреть сообщение
C++
1
2
3
4
5
6
p = new lfile;
p->name=a;
p->data=b;
p->upd=c;
p->next = NULL;
start = p;
ок вот тут p выделяется память но если я на вывод ставлю
cout<<p->name;
то таже самая ошибка возникает
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.10.2012, 17:53     Не выводится содержимое динамического списка #6
Структуру сначала нужно заполнить. В функции main() сделайте вызов функции:
C++
1
create_list(a, b, c)
, а потом уже:
C++
1
cout<<start->name;
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 18:04  [ТС]     Не выводится содержимое динамического списка #7
аллилуя вот совет помог сейчас работает, осталось только придумать как сделать функции чтоб можно было узнать количество записей ну или анкет в списке, как добавлять новые и новые, и как найти по имени какую нибудь из них.... мне вообще надо сделат динамический список и преподу сдать работу
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
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include <tchar.h>
#include <string>
//---------------------------------------------------------------------------
#include <conio.h>
struct lfile{
string name;
string data;
string upd;
    lfile*next;
}*start,*p;
void create_list(string a,string b,string c){
p = new lfile;
p->name=a;
p->data=b;
p->upd=c;
p->next = NULL;
start = p;
return;
}
main(){
setlocale(LC_ALL, "rus");
string a,b,c;
cout<<"Vvedite znachenie pervogo elementa v sozdavaemom spiske: ";
cin>>a>>b>>c;
create_list(a,b,c);
cout<<p->name<<endl<<p->data<<endl<<p->upd;
getch();
return 0;
}
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 18:07     Не выводится содержимое динамического списка #8
Цитата Сообщение от BumerangSP Посмотреть сообщение
у него, вероятно, borland стоит.

Не по теме:

а мне кажется это RAD Studio, хотя если считать что Embarcadero их купила, то да это Borland


А по теме, ТС , а вы ООП проходили?
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 18:09  [ТС]     Не выводится содержимое динамического списка #9
совершенно верно Embarcadero RAD Studio
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 18:12     Не выводится содержимое динамического списка #10
а что насчет ООП?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.10.2012, 18:18     Не выводится содержимое динамического списка #11
Цитата Сообщение от lexflax Посмотреть сообщение
осталось только придумать как сделать функции чтоб можно было узнать количество записей ну или анкет в списке, как добавлять новые и новые, и как найти по имени какую нибудь из них.... мне вообще надо сделат динамический список и преподу сдать работу
Связанный спиок. На форуме тем много.
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 18:18  [ТС]     Не выводится содержимое динамического списка #12
я правильно понимаю ООП это объектно-орентриуемое программирование? я заочник ускоренник у меня пар нету и группы свой нету специальность "программное обеспечение" так где что уловлю прочту так и как то на третий курс и перешел)
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 18:20     Не выводится содержимое динамического списка #13
да ООП , это объектное программирование, так былобы проще, а вы как я понимаю собираетесь делать структуры наподобии стека?
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 18:23  [ТС]     Не выводится содержимое динамического списка #14
ну вообще от препода у меня задание создать динамический список используя классы и стек, но честно говоря я не понял чем стек отличается от простой структуры, а с классами тем более у меня все плохо читал читал но как то смутно с ними все осталось, решил попробовать хотя бы без классов создать динамический список и функции добавления новых элементов в спикок, удаление ну и желательно поиск
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.10.2012, 18:27     Не выводится содержимое динамического списка #15
Цитата Сообщение от lexflax Посмотреть сообщение
орентриуемое
Ориентированное.
Цитата Сообщение от Nixy Посмотреть сообщение
Не по теме:
а мне кажется это RAD Studio, хотя если считать что Embarcadero их купила, то да это Borland
Nixy, ну, да они из одной области.

Цитата Сообщение от Nixy Посмотреть сообщение
структуры наподобии стека?
Списка. Стек неуместен.

Добавлено через 2 минуты
Цитата Сообщение от lexflax Посмотреть сообщение
отличается от простой структуры
От какой простой? Стек - это и есть структура. От списка отличается, во-первых, назначением, во-вторых, особенностями реализации.
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 18:40  [ТС]     Не выводится содержимое динамического списка #16
Цитата Сообщение от BumerangSP Посмотреть сообщение
Стек - это и есть структура. От списка отличается, во-первых, назначением, во-вторых, особенностями реализации.
а пример можно? как понять названием? и какая другая реализация у него может быть?
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.10.2012, 18:57     Не выводится содержимое динамического списка #17
lexflax, назначением. В смысле, стеки, в основном, нужны для хранения каких-то промежуточных значений. Реализация (немного не так выразился), в смысле в список, например, можно добавлять элементы в начало, в конец, в середину. У стеков только один способ. Вообще, информации много на эту тему.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 19:04     Не выводится содержимое динамического списка #18
Цитата Сообщение от BumerangSP Посмотреть сообщение
lexflax, назначением. В смысле, стеки, в основном, нужны для хранения каких-то промежуточных значений. Реализация (немного не так выразился), в смысле в список, например, можно добавлять элементы в начало, в конец, в середину. У стеков только один способ. Вообще, информации много на эту тему.
то что список проще я сам понимаю , поэтому и спросил у товарища про ООП, а про стек я сказал увидев у него в его структуре указатель на следующий

Добавлено через 48 секунд
Цитата Сообщение от lexflax Посмотреть сообщение
а пример можно? как понять названием? и какая другая реализация у него может быть?
поищите в интернете, способ хранения информации, либо стек
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
16.10.2012, 06:44  [ТС]     Не выводится содержимое динамического списка #19
вот функция добавления нового элемента в стктуру после уже созданного
C++
1
2
3
4
5
6
7
8
9
10
void new_element(string a,string b,string c){
lfile *q;
q = new lfile;
q->name= a;
q->data=b;
q->upd=c;
q->next = p->next;
p->next = q;
return;
}
вот только он становится вторым и чтоб его вывести надо писать строку
C++
1
cout<<p->next->name<<endl<<p->next->data<<endl<<p->next->upd;
но это и не удобно и не практично, как это все автоматизировать или упростить чтоб мог допустим добавлять элементы и по номеру элемента выводить его содержимое , допустим вывести содержимое 4 элемента... вот такой сейчас код
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
#include <vcl.h>
#pragma hdrstop
#include<iostream.h>
#include <tchar.h>
#include <string>
//---------------------------------------------------------------------------
#include <conio.h>
struct lfile{
string name;
string data;
string upd;
    lfile*next;
}*start,*p,*q;
void create_list(string a,string b,string c){
p = new lfile;
p->name=a;
p->data=b;
p->upd=c;
p->next = NULL;
start = p;
return;
}
void new_element(string a,string b,string c){
lfile *q;
q = new lfile;
q->name= a;
q->data=b;
q->upd=c;
q->next = p->next;
p->next = q;
return;
}
main(){
setlocale(LC_ALL, "rus");
string a,b,c;
cout<<"Vvedite znachenie pervogo elementa v sozdavaemom spiske: ";
cin>>a>>b>>c;
create_list(a,b,c);
cout<<p->name<<endl<<p->data<<endl<<p->upd;
cout<<"dobavit eshe element: ";
cin>>a>>b>>c;
new_element(a,b,c);
cout<<p->next->name<<endl<<p->next->data<<endl<<p->next->upd;
getch();
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 10:45     Не выводится содержимое динамического списка
Еще ссылки по теме:

Структура в виде динамического списка - C++
Доброе время суток. Есть программа #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;windows.h&gt; #include...

Обмен элементов динамического списка - C++
Народ помогите кто как может или литературы полезной скиньте, что то читал читал, а толку нету. необходимо создать однонаправленный...

Абстрактный класс динамического списка - C++
Как создать из класса динамического списка - абстрактный? Ну ясно что абстрактный класс - это класс с чистой виртуальной функцией. ...

Объяснить код создания динамического списка - C++
есть функция для создания динамического списка, может кто объяснить как работает цикл &quot;for&quot; в ней class Numbers{ public: ...

C++ Наследование динамического списка классом стеком. - C++
Салют форумчане. Новый курс, новые приключения. Вот и дали задание наследую динамический список создать стек. Список вроде сделал , да стек...


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

Или воспользуйтесь поиском по форуму:
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
16.10.2012, 10:45     Не выводится содержимое динамического списка #20
сделайте функцию вывода по номеру элемента (у текущего элемента индекс 1, у самого 1 в стеке 0, поэтому индекс указвает на сколько глубоко в стек надо опустится)
C++
1
2
3
4
5
6
7
8
lfile *getFile(int index, lfile *curFile){
      if (index){
         index--;
         return getFile(index,curFile->next);
      }
      else
        return  curFile;
    }
и тогда вывод заменится таким образом
C++
1
2
cout<<getFile(1,p)->name<<endl<<getFile(1,p)->data;
        cout<<endl<<getFile(1,p)->upd;
Yandex
Объявления
16.10.2012, 10:45     Не выводится содержимое динамического списка
Ответ Создать тему
Опции темы

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