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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2010, 16:15   #1
iSky
 
Регистрация: 22.10.2010
Сообщений: 4
Радость Вставка в функцию значение из структуры

Всем здрасте!! Мне нужно в функцию 'func' передать значения 'myBook.name' и 'myBook.number'. Естественно с разными индесами будут (например myBook[2].name).
Буду признателен если не только поможете, но и объясните почему именно так пишется.

Код:
#include <iostream>
using namespace std;

struct PhoneBook {
	char name[20];
	int number;
};
int func(PhoneBook *myBook,PhoneBook *myBook,int n); //ЧТО ПИСАТЬ в скобках?!?!?

int main () {
	int n;
	cout<<"Введите количество записей: ";
	cin>>n;
	PhoneBook myBook[n];
	
	for(int i=0;i<n;i++){
		cout<<"Введите ["<<i+1<<"] имя: ";
		cin>>myBook[i].name;
		cout<<"Введите ["<<i+1<<"] номер: ";
		cin>>myBook[i].number;
	}
	
	for(int j=0;j<n;j++){
		cout<<j+1<<" контакт "<<func(*myBook[j].name, myBook[j].number, n)<<endl; //как правильно передать????
	}
    return 0;
}

int func(PhoneBook *myBook, PhoneBook *myBook, n) //как лучше обработать???
{int k=0;
	for(int k=0;k<n;k++){
		cout<<myBook.name<<" - "<<myBook.number<<endl;
	}
}
Спасибо!!!
iSky вне форума Ответить с цитированием
Старый 22.10.2010, 16:19   #2
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

В скобках - принимаемые функцией параметры(т.е. те, которые она должна получить из программы для своей работы) - в фигурных скобках {} - функционал, тип перед функцией - то что функция должна вернуть
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 22.10.2010, 16:28   #3
iSky
 
Регистрация: 22.10.2010
Сообщений: 4
По умолчанию

это я знаю... но хотелосьбы на примере моём, чтоб написали где и что должно быть написано.

Чтобы я смог опираясь на пример, делать в будующем правильно.
iSky вне форума Ответить с цитированием
Старый 22.10.2010, 16:41   #4
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Напишите мне лучше в аську. Попробую помочь в разъяснении некоторых моментов, т.к. в коде много в корне неправильных вещей - не логических операций, которые можно быстро исправить, а именно серьезное непонимание принципов того, что вы пишите
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 22.10.2010, 17:07   #5
iSky
 
Регистрация: 22.10.2010
Сообщений: 4
По умолчанию

есть у кого ответ - как передать 'myBook.name' в функцию 'func'?
iSky вне форума Ответить с цитированием
Старый 22.10.2010, 18:49   #6
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Если указатель указывает на структуру, то есть Struct *Pointer, тогда параметром нужно передавать адрес переменной и внутри функции использовать обращение следующим методом: Struct->someVar;
А для объекта, обращение к членам происходит через точку, и параметром не нужно передавать адрес.

Собственно глазей пример:

Код:
struct typeStruct
{
	int someVar;
};

void Func(typeStruct *Pointer, typeStruct Object)
{
	int x = 0, y = 0;

	Pointer->someVar = x; Object.someVar = y;
}

int _tmain(int argc, _TCHAR* argv[])
{
	typeStruct Object;
	Func(&Object, Object);
	return 0;
}

Последний раз редактировалось coNsept; 22.10.2010 в 18:56.
coNsept вне форума Ответить с цитированием
Старый 22.10.2010, 18:55   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Что-то ТС задание свое сильно заморочил, если я правильно понял, то вроде вот так:
Код:
#include <iostream>
using namespace std;

struct PhoneBook {
	char name[20];
	int number;
} *p;
void func(PhoneBook Book[], int n);

int main ()
{	
	setlocale(LC_CTYPE,"Russian");
	int count;
	cout<<"Введите количество записей: ";
	cin>>count;
	PhoneBook *myBook = new PhoneBook[count];
	for(int i = 0; i < count; i++)
	{
		cout<<"Введите ["<<i+1<<"] имя: ";
		cin>>myBook[i].name;
		cout<<"Введите ["<<i+1<<"] номер: ";
		cin>>myBook[i].number;
	}
	
	func(myBook, count);
	delete [] myBook;
    return 0;
}

void func(PhoneBook Book[], int n)
{
	for (int i = 0; i < n; i++)
		cout<<i + 1<<" контакт "<<Book[i].name<<" - "<<Book[i].number<<endl;
}
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 24.10.2010, 00:57   #8
iSky
 
Регистрация: 22.10.2010
Сообщений: 4
По умолчанию

Чегото я не понял до конца...
Цитата:
#include <iostream>
using namespace std;

struct PhoneBook {
char name[20];
int number;
} *p; //ДЛЯ ЧЕГО *p?????
void func(PhoneBook Book[], int n);

int main ()
{
setlocale(LC_CTYPE,"Russian"); //ЗАЧЕМ ЭТА СТРОКА???
int count;
cout<<"Введите количество записей: ";
cin>>count;
PhoneBook *myBook = new PhoneBook[count];
for(int i = 0; i < count; i++)
{
cout<<"Введите ["<<i+1<<"] имя: ";
cin>>myBook[i].name;
cout<<"Введите ["<<i+1<<"] номер: ";
cin>>myBook[i].number;
}

func(myBook, count);
delete [] myBook;
return 0;
}

void func(PhoneBook Book[], int n)
{
for (int i = 0; i < n; i++)
cout<<i + 1<<" контакт "<<Book[i].name<<" - "<<Book[i].number<<endl;
}
iSky вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при создании списков(динамич. структуры) через отдельную функцию(вне main) Aerial Общие вопросы C/C++ 1 22.09.2010 22:39
Копирование и вставка данных как значение. Shkoda Microsoft Office Excel 1 10.07.2010 13:51
Вычисления значение выражения, которое передается в функцию в виде строки noobOS Помощь студентам 5 01.07.2010 17:03
Вычислить значение функции y, развив функцию ln(x) в ряд Тейлора Lifastyle Общие вопросы C/C++ 2 15.03.2010 11:26
Как передать значение переменной из функции в ACCESSе в функцию в EXCELе? musicitsme Microsoft Office Access 1 01.04.2009 10:24