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

Ошибка цикла For - C++

Восстановить пароль Регистрация
 
scherbakovss201
-4 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 460
29.05.2016, 20:12     Ошибка цикла For #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
33
34
// Создаем структуру
//делаем 10 копий
//инициализируем их
// выводим на консоль
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
struct  Person
{
    int age;
    char *address;
    int salary;
};
 
Person people[10];
 
for (int index = 0; index<1000; index++)
{
 
    people[index].age = 18;
    people[index].address = NULL;
    people[index].salary = 35000;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    cout << "Возраст персоны во второй структуре  " << people[2].age<< endl;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scherbakovss201
-4 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 460
29.05.2016, 20:16  [ТС]     Ошибка цикла For #2
Ошибка цикла For
scherbakovss201
-4 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 460
29.05.2016, 20:26  [ТС]     Ошибка цикла For #3
Та же ошибка с циклом For
код переделал на класс
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
// Создаем класс
//делаем 10 копий
//инициализируем их
// выводим на консоль
 
#include "stdafx.h"
#include <iostream>
using namespace std;
class Person
{
public:
    int age;
    char *adress;
    int salary;
    Person()
    {
        age = 0;
        adress = NULL;
        salary = 35000;
    }
};
 
Person people[10];
 
for (int index = 0; index<10; index++)
{
 
    people[index].age = 18;
    people[index].address = NULL;
    people[index].salary = 35000;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    cout << "Возраст второго класса  " << people[2].age << endl;
    system("pause");
    return 0;
}
Ошибка цикла For
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
29.05.2016, 21:15     Ошибка цикла For #4
Надеюсь, Вы знаете, что исполняемый код должен находиться внутри функции.
К какой функции относится код в строках 25-31?
scherbakovss201
-4 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 460
29.05.2016, 21:26  [ТС]     Ошибка цикла For #5
Исправил,путем перемещения цикла в функцию.Вопрос,у нас 10 экземляров класса.А как их правильно сохранить в файл и потом прочитать из него,что бы каждый экземляр сзаписал/прочитал свои данные?Какой файл -текстовый или бинарный?
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
// Создаем класс
//делаем 10 копий
//инициализируем их
// выводим на консоль
 
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime> 
using namespace std;
class Person
{
public:
    int age;
    char *adress;
    int salary;
    Person()
    {
        age = 0;
        adress = NULL;
        salary = 35000;
    }
};
 
Person people[10];
const unsigned int ARRSIZE = 10;
const int min = 0;
const int max = 35000;
const int m = 100;
 
// функция генерации случайного числа из диапазона от range_min до range_max включительно
int rrand(int range_min, int range_max)
{
    return rand() % (range_max - range_min + 1) + range_min;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
 
    srand(static_cast<unsigned int>(time(NULL)));
    cout << endl;
    for (int index = 0; index<ARRSIZE; index++)
    {
        people[index].age = rrand(min, m);
        people[index].adress = NULL;
        people[index].salary = rrand(min, max);
    }
 
    setlocale(LC_ALL, "rus");
    for (int i = 0; i < ARRSIZE; i++)
    {
        cout << "Возраст  класса  " << people[i].age << endl;
        cout << "Зарплата  " << people[i].salary << endl;
    }
 
    system("pause");
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
30.05.2016, 08:24     Ошибка цикла For #6
обратите внимание на то, что у Вас в классе хранится указатель
C++
1
char *adress;
Т.е. данные выделяются динамически (в приведенном коде этого еще нет, но, надеюсь, Вы понимаете, что память нужно выделять).
Т.о. простая запись структуры не прокатит.
Придется писать все подробно.
C++
1
2
3
4
5
6
7
8
void Person::AddToEndOfFile()
{
   ofstream ff("file.txt", ios::ate | ios::app);
   if(!ff)
      throw "File file.txt can't open for writing\n";
   ff<<age<<endl<<adress<<endl<<salary<<endl;
   ff.close();
}
Yandex
Объявления
30.05.2016, 08:24     Ошибка цикла For
Ответ Создать тему
Опции темы

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