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

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

Войти
Регистрация
Восстановить пароль
 
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
#1

Структура выводит мусор - C++

26.10.2012, 18:49. Просмотров 598. Ответов 8
Метки нет (Все метки)

здравствуйте. Почему данный код выводит мусор? Я неправильно присваиваю?
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
void poisk_cena(){
if (est){ 
dvd *p1 = new dvd[t];
int rub;
cout<<"Задайте цену: ";
cin>>rub;
//*******
dvd *p2 = new dvd[];// сюда сохр отсортированные диски
int m = 0;
int e = 0; // количество оставшихся дисков
//*********
fstream f("f.dat", ios::in | ios::out);
for(int i = 0; i<t; i++)
{  
    f >> p1[i].namefilm; 
    f >> p1[i].namereg;
    f >> p1[i].prodol;
    f >> p1[i].cena;
    if (p1[i].cena<rub){
    cout<<"       Диск: "<<i+1<<"\n";
    cout<<"Название фильма: "<<p1[i].namefilm<<"\n";    p2[m].namefilm==p1[i].namefilm;
    cout<<"Имя режиссера: "<<p1[i].namereg<<"\n";       p2[m].namereg==p1[i].namereg;
    cout<<"Продолжительность: "<<p1[i].prodol<<"\n";    p2[m].prodol==p1[i].prodol;
    cout<<"Цена: "<<p1[i].cena<<"\n\n";                 p2[m].cena==p1[i].cena;
    m++;
    e++;
    }
}
 
for(int m ; m<e; m++)
{  cout<<"-------------------------\n";
    cout<<"Название фильма: "<<p2[m].namefilm<<endl;
    cout<<"Имя режисера: "<<p2[m].namereg<<endl;
    cout<<"Продолжительность: "<<p2[m].prodol<<endl;
    cout<<"Цена: "<<p2[m].cena<<"\n\n";
    
}
 
f.close(); delete [] p1; 
delete [] p2;
}
else {cout<<"\nОшибка! Нет дисков\n";}
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура выводит мусор (C++):

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

Выводит в конце мусор - C++
Задание такое: напишите функцию print_array (ostream os, int* a, int n) выводящую в поток os значения массива а (содержащего n элементов)....

При выводе массива, выводит мусор - C++
Програмка генератор паролей! #include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;conio.h&gt; using namespace std; void...

Почему выводит в конце строки мусор? - C++
Выводит нужную строку... и мусор в конце Переменная len принимает правильное значение При входе в первый цикл new_str получает двойной...

При работе с указателями на сервер отправляется мусор, но выводит в консоль норм данные - C++
День добрый! Отправляю на сервер разные штуки и на снифер это ловлю, вот что получается: char buf = &quot;AAABBB&quot;; на снифере AAABBB -...

Аналог рекурсивной функции, отображающей строку в обратном порядке, выводит "мусор" - C++
Добрый день, при попытке написать аналог рекурсивной функции отображающей строку в обратном порядке напоролся на грабли: #include...

8
alex_289
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 12
26.10.2012, 20:29 #2
Вместо == поставте = .Знак == это сравнение,а = это присвоение.
0
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
27.10.2012, 10:57  [ТС] #3
Не канает . пишет ошибки
1>kurs_9.cpp(90): error C2106: =: левый операнд должен быть левосторонним значением
1>kurs_9.cpp(91): error C2106: =: левый операнд должен быть левосторонним значением


Я предполагаю что это из за того что p1[i].namefilm и p1[i].namereg являются char. Но как исправить?
0
David Sylva
1288 / 950 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.10.2012, 11:06 #4
Предполагаю, что ошибки из-за, того что сравниваешь тип char не правильно.Тип char сравнивать нужно с помощью функции strcmp или можно все char поменять на string. И выкладывай весь код.
2
ValeryS
Модератор
6681 / 5090 / 477
Регистрация: 14.02.2011
Сообщений: 17,090
27.10.2012, 11:20 #5
Цитата Сообщение от иван_пропал Посмотреть сообщение
p1[i].namefilm и p1[i].namereg являются char.
не char
а строкой типа char*
и простое сравнение здесь не проканает
да и присвоение тоже
вот так не получится
C++
1
2
char w[]="blala"
char d[10]=w
нужно или копирование памяти или использования вместо char [] типа string
1
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
27.10.2012, 11:22  [ТС] #6
Я не сравниваю а присваиваю и выходят эти две ошибки
Кликните здесь для просмотра всего текста

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
void poisk_cena(){
if (est){ 
dvd *p1 = new dvd[t];
int rub;
cout<<"Задайте цену: ";
cin>>rub;
//*******
int m = 0; 
dvd *p2 = new dvd[m];// сюда сохр отсортированные диски
int e = 0; // количество оставшихся дисков
//*********
 
fstream f("f.dat", ios::in | ios::out);
for(int i = 0; i<t; i++)
{  
    f >> p1[i].namefilm; 
    f >> p1[i].namereg;
    f >> p1[i].prodol;
    f >> p1[i].cena;
    if (p1[i].cena<rub){
    cout<<"       Диск: "<<i+1<<"\n";
 
    cout<<"Название фильма: "<<p1[i].namefilm<<"\n";    
    cout<<"Имя режиссера: "<<p1[i].namereg<<"\n";       
    cout<<"Продолжительность: "<<p1[i].prodol<<"\n";    
    cout<<"Цена: "<<p1[i].cena<<"\n\n";                 
 
p2[m].namefilm = p1[i].namefilm;
p2[m].namereg  = p1[i].namereg;
p2[m].prodol   = p1[i].prodol;
p2[m].cena     = p1[i].cena;
 
    m++;
    e++;
    }
}


Структура:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
struct dvd //структура dvd диска 
{
char namefilm[20];//название фильма
char namereg[20];// имя режиссера
int prodol; // продолжительность в минутах
int cena; // цена
};
0
ValeryS
Модератор
6681 / 5090 / 477
Регистрация: 14.02.2011
Сообщений: 17,090
27.10.2012, 11:30 #7
Цитата Сообщение от иван_пропал Посмотреть сообщение
Я не сравниваю а присваиваю и выходят эти две ошибки
простым + ты здесь не обойдешся
Цитата Сообщение от ValeryS Посмотреть сообщение
нужно или копирование памяти или использования вместо char [] типа string
1
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
27.10.2012, 12:09  [ТС] #8
Изменил с char на string. приложение запускается но при выводе на экран выходит ошибка

Необработанное исключение типа "System.AccessViolationException" произошло в kurs_9.exe

Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

Добавлено через 11 минут
И выводит только один результат
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.10.2012, 14:29 #9
!!!!!
Цитата Сообщение от иван_пропал Посмотреть сообщение
//*******
int m = 0;
dvd *p2 = new dvd[m];// сюда сохр отсортированные диски
Цитата Сообщение от иван_пропал Посмотреть сообщение
p2[m].namefilm = p1[i].namefilm;
p2[m].namereg = p1[i].namereg;
p2[m].prodol = p1[i].prodol;
p2[m].cena = p1[i].cena;

m++;
0
27.10.2012, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2012, 14:29
Привет! Вот еще темы с ответами:

Выводит "мусор" при считывании файла - C++
Вывод // (c) vladyxa13 #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; #include &lt;fstream&gt; using namespace std; ...

Сортировка массива, вместо массива выводит мусор - C++
Здравствуйте Уважаемые жители форума! Есть рабочий код сортируем массив выбором поиск наименьшего значения, но почему выводит какой то...

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость. - C++
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать задач, тем всей группой поставим &quot;+&quot;...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар» - C++
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать...


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

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

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