Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2009, 01:07   #1
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение массивы структур

Помогите разобраться. На днях начал изучать массивы структур- в книге попался следующий пример:

Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#pragma hdrstop
#include "structur.h"
void displayRecord(int, mailingListRecord mlRec);
int main(int, char**)
{
        mailingListRecord listArray[3];
        cout<<endl;
        int index=0;
        do{
                cout<<"firstname: ";
                cin.getline(listArray[index].firstname,
                sizeof(listArray[index].firstname)-1);
                cout<<"lastname: ";
                cin.getline(listArray[index].lastname,
                sizeof(listArray[index].lastname)-1);
                cout<<"address: ";
                cin.getline(listArray[index].address,
                sizeof(listArray[index].address)-1);
                cout<<"sity: ";
                cin.getline(listArray[index].sity,
                sizeof(listArray[index].city)-1);
                cout<<"State: ";
                cin.getline(listArray[index].state,
                sizeof(listArray[index].state)-1);
                char buff[10];
                cout<<"Zip: ";
                cin.getline(buff,sizeof(buff)-1);
                ListArray[index].zip=atoi(buff);
                index++;
                cout<<endl;
        }
        while(index<3);
        clrscr();
        for(int i=0;i<3;i++){
                displayRecord(i,listArray[i]);
        }
        cout<<"Shoose a record: ";
        char rec;
        do{
                rec=getch();
                rec-= '1';
        }
        while(rec<0||rec>2);
        mailingListRecord temp=listArray[rec];
        clrscr();
        cout<<endl;
        displayRecord(rec,temp);
        getch();
        return 0;
}
void displayRecord(int num, mailingListRecord mlRec)
{
        cout<<"Record"<<num+1<<":"<<endl;
        cout<<"name: "<<mlRec.firstname<<"";
        cout<<mlRec.lastname;
        cout<<endl;
        cout<<"address: "<<mlRec.address;
        cout<<endl<<"           ";
        cout<<mlRec.city<<",";
        cout<<mlRec.state<<"  ";
        cout<<mlRec.zip;
        cout<<endl<<endl;
}
#ifndef _STRUCTUR_H
#define _STRUCTUR_H
struct mailingListRecord{
        char firstname[20];
        char lastname[20];
        char address[50];
        char city[20];
        char state[5];
        int zip;
};
#endif
Как только не пробовал ее исправить- не хочет запускаться! В принципе я мог бы объявить структуру, в начале, следующим образом:

Код:
struct mailingListRecord{
       char firstname[20];
       char lastname[20];
       char address[50];
       char city[20];
       char state[5];
       int zip;
};mailingListRecord;
Но это все не то...

Последний раз редактировалось vasek123; 06.03.2009 в 01:22.
vasek123 вне форума Ответить с цитированием
Старый 06.03.2009, 01:16   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#pragma hdrstop
#include "structur.h"
void displayRecord(int, mailingListRecord mlRec);
int main(int, char**)
{
        mailingListRecord listArray[3];
        cout<<endl;
        int index=0;
        do{
                cout<<"first name: ";
                cin.getline(listArray[index].firstname,
                sizeof(listArray[index].firstname)-1);
                cout<<"lastname: ";
                cin.getline(listArray[index].lastname,
                sizeof(listArray[index].lastname)-1);
                cout<<"address: ";
                cin.getline(listArray[index].address,
                sizeof(listArray[index].address)-1);
                cout<<"sity: ";
                cin.getline(listArray[index].sity,
                sizeof(listArray[index].city)-1);
                cout<<"State: ";
                cin.getline(listArray[index].state,
                sizeof(listArray[index].state)-1);
                char buff[10];
                cout<<"Zip: ";
                cin.getline(buff,sizeof(buff)-1);
                ListArray[index].zip=atoi(buff);
                index++;
                cout<<endl;
        }
        while(index<3);
        clrscr();
        for(int i=0;i<3;i++){
                displayRecord(i,listArray[i]);
        }
        cout<<"Shoose a record: ";
        char rec;
        do{
                rec=getch();
                rec-= '1';
        }
        while(rec<0||rec>2);
        mailingListRecord temp=listArray[rec];
        clrscr();
        cout<<endl;
        displayRecord(rec,temp);
        getch();
        return 0;
}
void displayRecord(int num, mailingListRecord mlRec)
{
        cout<<"Record"<<num+1<<":"<<endl;
        cout<<"name: "<<mlRec.firstname<<"";
        cout<<mlRec.lastname;
        cout<<endl;
        cout<<"address: "<<mlRec.address;
        cout<<endl<<"           ";
        cout<<mlRec.city<<",";
        cout<<mlRec.state<<"  ";
        cout<<mlRec.zip;
        cout<<endl<<endl;
}
#ifndef _STRUCTUR_H
#define _STRUCTUR_H
struct mailingListRecord{
        char firstname[20];
        char lastname[20];
        char address[50];
        char city[20];
        char state[5];
        int zip;
};
#endif
твои ошибки выделил. неужели самому не понятно, на что компиль ругается.
+ я не знаю, как в этом билдере, но надо добавить
using namespace std;
после инклудов.

пс. ееее. этот код я редактил в виме!! i did it!!!!
vvviperrr вне форума Ответить с цитированием
Старый 06.03.2009, 01:21   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Попробуйте так. Все ошибки указал компилятор.
Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#pragma hdrstop
#include "structur.h"

void displayRecord(int, mailingListRecord mlRec);
int main(int, char**)
{
        mailingListRecord listArray[3];
        cout<<endl;
        int index=0;
        do{
                cout<<"firstname: ";
                cin.getline(listArray[index].firstname,
                sizeof(listArray[index].firstname)-1);
                cout<<"lastname: ";
                cin.getline(listArray[index].lastname,
                sizeof(listArray[index].lastname)-1);
                cout<<"address: ";
                cin.getline(listArray[index].address,
                sizeof(listArray[index].address)-1);
                cout<<"sity: ";
                cin.getline(listArray[index].city,
                sizeof(listArray[index].city)-1);
                cout<<"State: ";
                cin.getline(listArray[index].state,
                sizeof(listArray[index].state)-1);
                char buff[10];
                cout<<"Zip: ";
                cin.getline(buff,sizeof(buff)-1);
                listArray[index].zip=atoi(buff);
                index++;
                cout<<endl;
        }
        while(index<3);
        //clrscr();
        for(int i=0;i<3;i++){
                displayRecord(i,listArray[i]);
        }
        cout<<"Shoose a record: ";
        char rec;
        do{
                rec=getch();
                rec-= '1';
        }
        while(rec<0||rec>2);
        mailingListRecord temp=listArray[rec];
        //clrscr();
        cout<<endl;
        displayRecord(rec,temp);
        getch();
        return 0;
}
void displayRecord(int num, mailingListRecord mlRec)
{
        cout<<"Record"<<num+1<<":"<<endl;
        cout<<"name: "<<mlRec.firstname<<"";
        cout<<mlRec.lastname;
        cout<<endl;
        cout<<"address: "<<mlRec.address;
        cout<<endl<<"           ";
        cout<<mlRec.city<<",";
        cout<<mlRec.state<<"  ";
        cout<<mlRec.zip;
        cout<<endl<<endl;
}
Файл structur.h
Код:
#ifndef _STRUCTUR_H
#define _STRUCTUR_H
struct mailingListRecord{
        char firstname[20];
        char lastname[20];
        char address[50];
        char city[20];
        char state[5];
        int zip;
};
#endif
------------
Вижу, опоздал..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.03.2009, 01:24   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Sazary мы не дремлем
vvviperrr вне форума Ответить с цитированием
Старый 06.03.2009, 01:38   #5
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Спасибо, завтра попробую разобрать! Если что-то не будет получаться сообщу! vvviperrr Ты думаешь что я один только раз разбирал эту программу? Если бы я разбирал один только раз- подобных бы ошибок не допустил! Что только не пробовал, даже переписывал весь код!
vasek123 вне форума Ответить с цитированием
Старый 06.03.2009, 02:01   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2vasek123 я ничего не думаю (и вообще это вредно). зачем его переписывать?) достаточно попытаться скомпилировать данный сырец, и компиль скажет тебе, что ему не понравилось) тут же просто опечатки
vvviperrr вне форума Ответить с цитированием
Старый 06.03.2009, 02:13   #7
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
2vasek123 я ничего не думаю (и вообще это вредно). зачем его переписывать?) достаточно попытаться скомпилировать данный сырец, и компиль скажет тебе, что ему не понравилось) тут же просто опечатки
В том и дело, опечаток в начале не было

p.s. А переписываю я исключительно для запоминания пройденного материала!
p.s.s. Операторы и циклы, указанные в данной "проге", я знаю, все дело в построении...

Последний раз редактировалось vasek123; 06.03.2009 в 02:48.
vasek123 вне форума Ответить с цитированием
Старый 06.03.2009, 15:50   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от vvviperrr
я не знаю, как в этом билдере, но надо добавить
using namespace std;
после инклудов.
Если подключать <iostream.h> именно указывая с расширением, то using namespace std можно не писать.
MaTBeu вне форума Ответить с цитированием
Старый 06.03.2009, 16:05   #9
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2MaTBeu ну я же говорю, "не знаю, как в этом билдере" в нормальных компилях нет такой возможности, да и не нужна она...
vvviperrr вне форума Ответить с цитированием
Старый 06.03.2009, 17:20   #10
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
2MaTBeu ну я же говорю, "не знаю, как в этом билдере" в нормальных компилях нет такой возможности, да и не нужна она...
Есть. По новому стандарту желательно использовать <iostream> и тогда необходимо использовать using namespace std; (ну или обращаться к соответствующим объектам с указанием пространства имен std:: )
Но, если все же использовать <iostream.h> то включать using namespace std; не нужно и билдер тут не причем
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива структур. nec117 Общие вопросы C/C++ 5 22.02.2009 18:01
Массивы структур.СИ под ДОС. Zid@ne Общие вопросы C/C++ 2 12.12.2008 18:16
Динамический массив структур RaZveDchiK Помощь студентам 1 31.08.2008 21:44
diff для структур ag-moscow Общие вопросы C/C++ 2 09.04.2008 02:57