Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

07.10.2012, 06:12. Просмотров 418. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 06:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Передача данных из функции (C++):

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

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

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

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

Передача лямбда в функции - C++
В чем смысл передачи лямбда выражения функции?auto square = (int x) { return x * x; }; std::cout &lt;&lt; square(16) &lt;&lt; std::endl;илиclass Foo ...

Передача объектов в функции - C++
Добрый день. После C изучал C#, теперь перешел к плюсам. Столкнулся с непониманием. В каких случаях следует передавать объект в...

3
alsav22
5434 / 4829 / 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 в функцию по ссылке.
0
NobleTracer
1 / 1 / 0
Регистрация: 28.09.2012
Сообщений: 29
07.10.2012, 11:04  [ТС] #3
Спасибо. Помогло. Не знал, что из функции вернётся уже не пустой массив.
0
alsav22
5434 / 4829 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.10.2012, 21:50 #4
Массив в функцию (в отличие от других переменных, передаваемых по значению ) передаётся как указатель на начало массива. Поэтому работа в функции идёт не с копией массива (что имеет место, в случае других переменных, передаваемых по значению), а с тем массивом, который создан в main().
0
07.10.2012, 21:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 21:50
Привет! Вот еще темы с ответами:

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

Передача параметров функции - C++
доброго времени суток:) есть программа реализующая метод градиентного спуска. но да это неважно есть функция Norm. значение этой...

Передача/возвращение из функции - C++
Привет, сейчас читал это. Там парень говорит, что когда мы передаем в функцию, например, так: #include &lt;iostream&gt; #include...

Передача функции в класс - C++
Во время работы программа завершается с ошибкой. Что я делаю не так? template&lt;typename T, T nontype_param&gt; class C { public: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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