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

Class, динамическая память, работа с данными - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятное поведение программы http://www.cyberforum.ru/cpp-beginners/thread1251800.html
Привет народ, вот кароч: #include"stdafx.h" #include"iostream" using namespace std; class calc{ int *i, *j; public: int &set_i(); int &set_j(); int add();
C++ Сортировка одномерного массива задание отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию. найденная позиция у меня - digit_element что не так??? int temp=0; bool exit=false; while(!exit) { exit=true; http://www.cyberforum.ru/cpp-beginners/thread1251781.html
Вычислить значение выражения с тремя переменными C++
Log: Domain Error Добрый день! В C++ совсем начинающий, и собственно в универе есть лабораторная работа, нужно написать програму которая будет вычислять значение выражения, в котором 3 переменных. Программу я вроде бы написал и она работает на случайных цифрах, однако у меня есть конкретные значения X,Y,Z которые подставив я долже получить ответ( который у меня есть), что бы проверить...
Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" C++
Всем привет. Есть два вопроса. 1. Нужно считать из txt файла числа в массив столбцов и строк. Код вроде правильный, но пишет ошибку:"Invalid allocation size: 4294967295 byte". #include <fstream> #include <algorithm> #include <ctime> #include <iostream> using namespace std; int main() {
C++ Не могу разобраться в термине "Битовые операторы" http://www.cyberforum.ru/cpp-beginners/thread1251766.html
Есть к примеру такой код, интересует строка fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY , я почитал про &, там как я понял сравниваются биты, почему в итоге возвращается тру или флолс? почему если в атрибутах находится инфа и папке и при сравнении с 0х00000010 будет false??? #include "stdafx.h" #include <Windows.h> #include <iostream> #include <string> using namespace std;
C++ Статическая линковка MinGW Как задать статическую линковку для MinGW в среде Qt Creator? Прописал в pro- файле:QMAKE_CXXFLAGS += -static, но не помогло. подробнее

Показать сообщение отдельно
wrone
8 / 8 / 2
Регистрация: 19.12.2013
Сообщений: 87

Class, динамическая память, работа с данными - C++

06.09.2014, 02:08. Просмотров 216. Ответов 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <string>
 
using namespace std;
 
 
int main(){
  
    int stop = 0;
    int n = 1;  
    string vards;
    string *vardi = new string[n];
    string *tmpvardi;
    int skaits = 0;
    
    int vecums;
    int *vecumi = new int[n];
    int *tmpvecumi;
 
// vards    
    while(true)
    {     
        cout << "\n Ievadi vardu: ";      // vvedi imja
     cin >> vards;
     
      cout << "\n Ievadi vecumu: ";   // vvedi vozrast
      cin >> vecums;
      
      
      // esli n == i  to nado uvili4itj pamjatj
          if(skaits == n)
          {
        tmpvardi = new string[n * 2];
        tmpvecumi = new int[n * 2];
        
            for(int j = 0; j < skaits; j++)
            {
            tmpvardi[j] = vardi[j];
            tmpvecumi[j] = vecumi[j];
            }
            
        delete[] vardi;
        delete[] vecumi;
        
        vardi = tmpvardi;
        vecumi = tmpvecumi;
        
         tmpvardi = 0;
         tmpvecumi = 0;
         
          n = n * 2;
          } 
        
      vardi[skaits] = vards;
      vecumi[skaits] = vecums;
      skaits++;    
     
      cout << "\n     Apturet? (1/0) = ";    // ostanovitj?
      cin >> stop;
        if(stop == 1)
        {
        cout << "\n  ...stopped" << endl;
        break;
        }
     
       
    }
     
          cout << endl;
          for(int j = 0; j < skaits; j++)
      {
          cout << "      " <<  vardi[j] << " - " << vecumi[j] << endl;
      }
          cout << endl;
 
return 0;
}
А теперь надо сделать тоже самое, но с классом который будет сохранять и выводить данные. Я попытался сделать, но он указывает на ошибку. Подскажите что не так.


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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
 
using namespace std;
 
    class Person
    {
    public:
 
        string name;
        int age;
 
         int n = 1;                               // oshibka ukazivaet na eti strochki
         int counter = 0;                                  // ******
           string *names = new string[n];           // ******
            string *tempNames[n];                      // *******
 
           int *ages = new int[n];
            int *tempAges[n];
 
 
        void information(string name, int age)
        {
            names[counter] = name;
            ages[counter] = age;
            counter++;
        }
 
        void output(string names[], int ages[])
        {
             int j = 0;
             while(j < counter)
             {
                   cout << endl << "Name: " << names[j];
                   cout << endl << "Age: " << ages[j] << endl;
                   j++;
             }
        }
 
    };
 
int main(){
 
 
    Person persona;
    int stop = 2;
 
       while(true)
       {
        cout << "Ievadi vardu: ";         //vvedi imja
         cin >> persona.name;              
        cout << "Ievadi vecumu: ";      //vvedi vozrast
         cin >> persona.age;
 
         persona.information(persona.name,persona.age);
        cout << "Apturet? (1/0): ";            // ostanovitj?
         cin >> stop;
        cout << endl;
 
 
 
            if(stop == 1)
            {
               break;
            }
       }
 
            persona.output(persona.names, persona.ages);
 
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru