Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
lexflax
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 627
1

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

14.10.2012, 14:38. Просмотров 1680. Ответов 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'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 14:38
Ответы с готовыми решениями:

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

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

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

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

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

40
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.10.2012, 15:06 2
Попробуйте #include <string.h> заменить на #include <string>, #include<iostream.h> на #include<iostream> и using namespace std; добавьте.
0
lexflax
11 / 11 / 6
Регистрация: 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;
}
0
Миниатюры
Не выводится содержимое динамического списка  
BumerangSP
4287 / 1409 / 463
Регистрация: 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 стоит.
0
lexflax
11 / 11 / 6
Регистрация: 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;
то таже самая ошибка возникает
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.10.2012, 17:53 6
Структуру сначала нужно заполнить. В функции main() сделайте вызов функции:
C++
1
create_list(a, b, c)
, а потом уже:
C++
1
cout<<start->name;
0
lexflax
11 / 11 / 6
Регистрация: 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;
}
0
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 18:07 8
Цитата Сообщение от BumerangSP Посмотреть сообщение
у него, вероятно, borland стоит.

Не по теме:

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


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

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

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

Добавлено через 48 секунд
Цитата Сообщение от lexflax Посмотреть сообщение
а пример можно? как понять названием? и какая другая реализация у него может быть?
поищите в интернете, способ хранения информации, либо стек
0
lexflax
11 / 11 / 6
Регистрация: 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;
}
0
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 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;
0
16.10.2012, 10:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 10:45

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

Сортировка динамического линейного списка
Подскажите пожалуйста как вывести список книг изданных после указанного года.Я...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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