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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NobleTracer
1 / 1 / 0
Регистрация: 28.09.2012
Сообщений: 29
#1

Передача данных из функции - C++

07.10.2012, 06:12. Просмотров 385. Ответов 3
Метки нет (Все метки)

Есть функция, которая должна считать структуру из файла и передать в основную программу саму структуру и кол-во элементов.
Структура:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
struct price
{
    char prod[20];
    char market[20]; // название товара и магазина
    int cost; // цена
};

А вот функция
C++
1
2
3
4
5
6
7
8
struct price readfile(struct price price_list[100])
{
    fstream file("price.txt", ios::in);
    int i ,n;
    for ( i = 0, n = 0; (file>>price_list[i].prod>>price_list[i].market>>price_list[i].cost).good(); ++i, ++n)
        cout<<price_list[i].prod<<(' ')<<price_list[i].market<<(' ')<<price_list[i].cost<<endl;
    return price_list[i];
}
вот надо передать значения price_list и n
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 06:12     Передача данных из функции
Посмотрите здесь:

Передача данных в функции - C++
Расскажите пожалуйста, почему упорно отказывается работать прога? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

Передача объектов функции. Два обращения к функции деструктора - C++
В книге этот код должен 2 раза обращаться к функции деструктора, то есть результатом программы должно быть: Создание 10 Разрушение ...

Передача функции - C++
#include &lt;iostream&gt; using namespace std; double calculation(double n, double m, double (*pf)(double v, double b)); double...

Передача функции параметром - C++
первый раз с этим дело имею, вот хотел с std::function разобраться, делаю что то вроде: int func(int) { return 0; } ... int func()...

Передача указателей в функции - C++
Привет всем. Вообщем изучаю с\с++ по книге Павловской, дошел до динамических структур данных(списки, стеки, очереди...), Вообщем наткнулся...

Передача параметра функции - C++
Подскажите пожалуйста каким образом передавать уже явные параметры CreateRectRgn в параметры BitBlt или StreatchBlt не прибегая к...

Передача указателя функции - C++
Помогите пожалуйста исправить код а то я в указатели ваще не втыкаю /* Вывести на экран три n-мерных вектора */ ...

Передача функции в функцию? - C++
Здравствуйте. Есть функция: void f (char*) В нее мне нужно записать некоторую строку и числовое значение. int a = 123; ...

Передача массива из функции - C++
Всем привет! Только начал изучать С++ и вот столкнулся с проблемой, как вывести массив символов из функции через return. В коде я вывожу...

передача функции указателей - C++
Сап, помогите пожалуйста разобраться с передачей указателей функции. Нужно для матрицы A (4×5) определить количество строк, сумма...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.10.2012, 09:32     Передача данных из функции #2
Вы в функцию передаёте массив структур из основной программы? Наверное, да. Там он заполняется данными из файла. Единственное, что нужно вернуть - это n. Пусть функция возвращает int:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int readfile(struct price *price_list)
{
    fstream file("price.txt", ios::in);
    int i ,n;
    for ( i = 0, n = 0; (file>>price_list[i].prod>>price_list[i].market>>price_list[i].cost).good(); ++i, ++n)
        cout<<price_list[i].prod<<(' ')<<price_list[i].market<<(' ')<<price_list[i].cost<<endl;
    return n - 1;
}
 
int main()
{
 ...
 struct price price_list[100];
 int n = 0;
 n = readfile(price_list);
...
}
Или перадайте n в функцию по ссылке.
NobleTracer
1 / 1 / 0
Регистрация: 28.09.2012
Сообщений: 29
07.10.2012, 11:04  [ТС]     Передача данных из функции #3
Спасибо. Помогло. Не знал, что из функции вернётся уже не пустой массив.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.10.2012, 21:50     Передача данных из функции #4
Массив в функцию (в отличие от других переменных, передаваемых по значению ) передаётся как указатель на начало массива. Поэтому работа в функции идёт не с копией массива (что имеет место, в случае других переменных, передаваемых по значению), а с тем массивом, который создан в main().
Yandex
Объявления
07.10.2012, 21:50     Передача данных из функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru