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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
14.10.2012, 14:38     Не выводится содержимое динамического списка #1
доброго времени суток.
структура с типом стринг, трем элементам структуры присваивается значение потом при попытки вывести одно из значений, тоесть обратится к списку через указатель выдает ошибку в строке вывода.
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'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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
 Аватар для BumerangSP
4283 / 1405 / 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
5282 / 4801 / 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
 Аватар для Nixy
399 / 280 / 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
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 18:12     Не выводится содержимое динамического списка #10
а что насчет ООП?
alsav22
5282 / 4801 / 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
 Аватар для Nixy
399 / 280 / 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
 Аватар для BumerangSP
4283 / 1405 / 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
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.10.2012, 18:57     Не выводится содержимое динамического списка #17
lexflax, назначением. В смысле, стеки, в основном, нужны для хранения каких-то промежуточных значений. Реализация (немного не так выразился), в смысле в список, например, можно добавлять элементы в начало, в конец, в середину. У стеков только один способ. Вообще, информации много на эту тему.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 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++
Не выводится содержимое массива C++
C++ Сортировка динамического линейного списка

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

Или воспользуйтесь поиском по форуму:
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 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     Не выводится содержимое динамического списка
Ответ Создать тему
Опции темы

Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru