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

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

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

Как забрать из функции структуру - C++

20.07.2013, 15:44. Просмотров 331. Ответов 8
Метки нет (Все метки)

Сама структура:
struct product
C++
1
2
3
4
5
6
7
8
9
10
{    
       char name[100];
       char exist[100];
       char price[100];
       char kolv[100];
       char srgod[100];
       char data_post[100];
       char rank[100];
       int temp[100];
} t;
Функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int read (product* pro)
{
    ifstream f;
    int i=0, n;
    f.open( "text.txt");
      while(!f.eof())
      {  f.getline(pro[i].name, 100, ',');
         f.getline(pro[i].exist, 100, ',');
         f.getline(pro[i].price, 100, ',');
         f.getline(pro[i].kolv, 100, ',');
         f.getline(pro[i].srgod, 100, ',');
         f.getline(pro[i].data_post, 100, ',');
         f.getline(pro[i].rank, 100, ';');
         i++; }
         f.close();
       n=i-1;
return pro[];
}
Как приравнять уже заполнению структуру к структуре в main() ??? (Желательно без указателей)
Ошибочный вариант:
C++
1
2
3
4
int main(){
//product* pro=new product[n]; так создаётся новый эл-т массива структур. 
pro[]=read(pro);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2013, 15:44     Как забрать из функции структуру
Посмотрите здесь:

Указатель на структуру как пареметр функции - C++
Господа программисты! Прошу вашей помощи! Помогите передать функции в качестве аргумента указатель на структуру. Вот что есть: struct...

Использование указателя на структуру как аргумента функции - C++
Я написал функцию, которая принимает указатель на структуру как аргумент функции, но компилятор выдаёт странную ошибку о преобразовании...

как забрать то что после комы? - C++
здравствуйте! есть число! 13.845 как мне с него забрать только 845?

как передать структуру в функцию, чтобы после выполнения функции он(массив в данном случае) вернулся измененным? - C++
const int size = 256; struct MARKER { char mark; } void processing(MARKER struct_m) { //тут какие-то изменения...

Рассматривая комплексное число как структуру, состоящую из двух вещественных полей, составить функции выполнения четырех арифметических операций - C++
Задание 3. Рассматривая комплексное число как структуру, состоящую из двух вещественных полей, составить функции выполнения четырех...

Как узнать, что есть данные для ввода, которые можно забрать std::cin - C++
Всем здравствуйте! У меня есть параллельный поток, в котором нужно собирать данные с помощью std::cin. Но чтобы произвести эту...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
20.07.2013, 15:47     Как забрать из функции структуру #2
Цитата Сообщение от Ghoster Посмотреть сообщение
Ошибочный вариант:
вполне нормальный вариант с точки зрения передачи в функцию. Другое дело, что возвращать не стоит массив. А просто вызвать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void read (product* pro)
{
    ifstream f;
    int i=0, n;
    f.open( "text.txt");
      while(!f.eof())
      {  f.getline(pro[i].name, 100, ',');
         f.getline(pro[i].exist, 100, ',');
         f.getline(pro[i].price, 100, ',');
         f.getline(pro[i].kolv, 100, ',');
         f.getline(pro[i].srgod, 100, ',');
         f.getline(pro[i].data_post, 100, ',');
         f.getline(pro[i].rank, 100, ';');
         i++; }
         f.close();
       n=i-1;
}
int main(){
  //product* pro=new product[n]; так создаётся новый эл-т массива структур. 
  read(pro);
  return 0;
}
Ну и позаботиться, чтоб размеры читаемых даных совпадали с массивом.
Ghoster
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 35
20.07.2013, 16:02  [ТС]     Как забрать из функции структуру #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Код C++

void read (product* pro)
{
* * ifstream f;
* * int i=0, n;
* * f.open( "text.txt");
* * * while(!f.eof())
* * * { *f.getline(pro[i].name, 100, ',');
* * * * *f.getline(pro[i].exist, 100, ',');
* * * * *f.getline(pro[i].price, 100, ',');
* * * * *f.getline(pro[i].kolv, 100, ',');
* * * * *f.getline(pro[i].srgod, 100, ',');
* * * * *f.getline(pro[i].data_post, 100, ',');
* * * * *f.getline(pro[i].rank, 100, ';');
* * * * *i++; }
* * * * *f.close();
* * * *n=i-1;
}
int main(){
* //product* pro=new product[n]; так создаётся новый эл-т массива структур.
* read(pro);
* return 0;
}
В main() всё равно не заполненная структура получается! Мне в main() надо получить заполненную структуру..
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
20.07.2013, 16:09     Как забрать из функции структуру #4
C++
1
2
3
4
5
6
int main(){
  product pro;
  read( &pro );
  cout << pro.name << endl;
  return 0;
}
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
20.07.2013, 16:10     Как забрать из функции структуру #5
Цитата Сообщение от lazybiz Посмотреть сообщение
int main(){
* product pro;
* read( &pro );
* return 0;
}
у него там массив вообще-то
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
20.07.2013, 16:14     Как забрать из функции структуру #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
у него там массив вообще-то
А с массивом проблем нет.
C++
1
2
3
4
5
6
int main(){
  product *pro = new product [10];
  read( pro );
  cout << pro[0].name << endl;
  return 0;
}
Добавлено через 1 минуту
Ghoster, какую роль играет переменная n в функции read ?
Ghoster
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 35
20.07.2013, 16:25  [ТС]     Как забрать из функции структуру #7
Цитата Сообщение от lazybiz Посмотреть сообщение
Ghoster, какую роль играет переменная n в функции read ?
Здесь никакой. Это Я узнаю количество эл-тво в массиве структур.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
20.07.2013, 16:27     Как забрать из функции структуру #8
Чтобы узнать количество элементов можно сделать так:
C++
1
2
3
    ...
    return i;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2013, 16:33     Как забрать из функции структуру
Еще ссылки по теме:

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

Разработать структуру и функции для работы с шестнадцатиричными числами - C++
Люди добрыеЮ помогите!!!!!!!!!!! Необходимо разработать структуру и функции для работы с шестнадцатиричными числами Подкиньте хотя бы...

Разработка функции, позволяющей создавать структуру моделируемой геометрической фигуры - C++
Есть длинное задание, одним из пунктов которого является &quot;Дополнительно разработать функцию, позволяющую создавать структуру моделируемой...

Написать структуру Book и функции сортировки массива таких структур - C++
Ребят помогайте , нужно лабу сдать , выручите . Описать структуру . Заполнить данными массив из 5 элементов . В полученной базе данных...

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


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

Или воспользуйтесь поиском по форуму:
Ghoster
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 35
20.07.2013, 16:33  [ТС]     Как забрать из функции структуру #9
Всем спасибо, разобрался)
Yandex
Объявления
20.07.2013, 16:33     Как забрать из функции структуру
Ответ Создать тему
Опции темы

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