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

Указатели на структуры! - C++

Восстановить пароль Регистрация
 
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63
10.03.2011, 11:46     Указатели на структуры! #1
Захватить память для массива из 10 структур.
Заполните массив данными из файла "1.dat".
Вывести информацию о маршрутах, имеющих определенный пункт в качестве начального или конечного. Высчитать для них среднюю длину.
Перед завершением программы освободить память.
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
#include "iostream"
#include "stdio.h"
using namespace std;
struct MARSH
{
    char start_name[20];
    char finish_name[20];
    int nom_msrsh;
    int dl_msrsh;
};
void main()
{
    int y=0, d=0;
    MARSH mas[10];
    MARSH *pmas;
    pmas=&mas[10];
    FILE *f1;
    f1 = fopen("1.bin","r+b");
    while(true)
    {
               fread(&pmas,sizeof(pmas),1,f1);
               if(!feof(f1)) break;
               else {pmas++; ++y;}
    }
    for (int i=0;i<y; i++)
        {
               if((*pmas).start_name[i]!=NULL && (*pmas).finish_name[i]!=NULL)
               {
                   cout<<"nachal'nii punkt"<<endl;
                   cout<<(*pmas).start_name<<endl;
                   cout<<"konechnii punkt"<<endl;
                   cout<<(*pmas).finish_name<<endl;
                   cout<<"Nomer marshruta"<<endl;
                   cout<<(*pmas).nom_msrsh<<endl;
                   cout<<"Dlina marshruta"<<endl;
                   cout<<(*pmas).dl_msrsh<<endl;
                   d+=(*pmas).dl_msrsh;
                   pmas++;
               }
        }
    cout<<"Srednay dlina="<<d/y<<endl;
    fclose(f1);
 
}
Это я написал, а вот как исправить, чтоб работало, не знаю.
Вот предыдущая программа, которая записывает в "1.dat"
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
#include "iostream"
#include "stdio.h"
using namespace std;
struct MARSH
{
    char start_name[20];
    char finish_name[20];
    int nom_msrsh;
    int dl_msrsh;
}sp;
void main()
{
    FILE *f1;
    f1 = fopen("1.bin","a+b");
    int n;
    cout<<"Vvedite kol-vo zapisey"<<endl;
    cin>>n;
    MARSH mas[100];
    MARSH *pmas;
    pmas=&mas[n];
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite nachal'nii punkt"<<endl;
        cin>>pmas[i].start_name;
        cout<<"Vvedite konechnii punkt"<<endl;
        cin>>pmas[i].finish_name;
        cout<<"Nomer marshruta"<<endl;
        cin>>pmas[i].nom_msrsh;
        cout<<"Dlina marshruta"<<endl;
        cin>>pmas[i].dl_msrsh;
    }
    fwrite(&pmas,sizeof(pmas),n,f1);
    fclose(f1);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2011, 11:46     Указатели на структуры!
Посмотрите здесь:

Указатели и динамические структуры данных C++
Указатели и динамические структуры данных C++
Указатели на структуры C++
C++ Указатели и структуры
C++ Структуры, содержащие указатели на самих себя
C++ Структуры и указатели
C++ Указатели на структуры
C++ Указатели и структуры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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