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

Инициализация членов структуры - C++

Восстановить пароль Регистрация
 
BlackArlekino
Сообщений: n/a
16.07.2012, 08:33     Инициализация членов структуры #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
#include <iostream>
struct Pizza
{
    char name[20];
    double diametr;
    double weidth;
};
 
int main()
{
    using namespace std;
    Pizza* ps = new Pizza;
    cout << "Enter the pizza diametr: ";
    cin >> ps->diametr;
    cout << "\nEnter the pizza name: ";
    cin.get(ps->name,20).get();
    cout << "\nEnter the pizza weidth: ";
    cin >> ps->weidth;
 
    cout << ps->name << ", " << ps->diametr << ", " << ps->weidth << '.';
    
    delete ps;
    
    cin.get();
    return 0;
}
Пытаюсь задать значение члену "diametr", равное:2,5. Но присваивается значение 2, а следующему члену в списке присваивается 5.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.07.2012, 08:42     Инициализация членов структуры #2
через запятую вводишь? нужно через точку 2.5
BlackArlekino
Сообщений: n/a
16.07.2012, 08:44     Инициализация членов структуры #3
Странно, в учебнике было сказано что cin использует пробел в качестве символа окончания строки. Спасибо, буду пробовать)
_mike
Сообщений: n/a
22.11.2012, 09:17     Инициализация членов структуры #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
struct MyElement {
  MyElement * next;
  MyElement * prev;
  string data;
};
 
class MyList {
 public:
  explicit MyList(){
    MyElement *head = new ListNode;
    head->next = 0;
    head->prev = 0;
    head->data = "";
    MyElement *tail = new ListNode;
    tail->next = 0;
    tail->prev = 0;
    tail->data = "";
    count      = 0;
  }
  void push_back(string indata){
    if(count == 0) {
      head->next = 0;
      head->data = indata;
      tail = head;
    } else {
      tail->data = indata;
      tail->prev = tail;
      tail->next = 0;
    }
   count++;
  }
 private:
  MyElement * head;
  MyElement * tail;
  int count;
};
 
int main(){
  MyList* list = new MyList;
  string buf[4] = {"this","prog","must","work!"};
  for(int i=0;i<4;i++) list->push_back(buf[i]);
  return 0;
}
Компиллируется без ошибок и ворнингов, а при работе метода push_back вылетает Segmentation fault (core dumped). Подскажите, в чем дело?

Добавлено через 9 минут
Возможно, пока переписывал код сюда допустил ошибки. Заранее прошу прощения. Ошибка появляется на строке head->next = 0;
Yandex
Объявления
22.11.2012, 09:17     Инициализация членов структуры
Ответ Создать тему
Опции темы

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