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

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

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

массив структур - C++

15.01.2010, 23:37. Просмотров 720. Ответов 12
Метки нет (Все метки)

как записать массив структур в файл и как его от туда вытащить?? что прописывать???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2010, 23:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив структур (C++):

Блочная сортировка структур (Отсортировать массив структур по фамилии) - C++
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Массив структур, сохранение начала каждой из структур - C++
Я создал такую структуру class Lancuch { public: char cos; Lancuch * nastepny; }; Lancuch * poczatek=NULL; cin >>...

Как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю? - C++
Ребята подскажите как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю.

Массив структур в массиве структур - C++
Всем добрый день. Делаю менюшку для управления и терзаю Arduino IDE слегка подвис со следующей задачей. Я хочу определить две...

Ввести массив структур; рассортировать массив в алфавитном порядке - C++
Пришел из армии восстановился в универе и тут сразу курсавай. Помогите Исходные данные(описание структуры): Информация об...

Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив? - C++
Допустим есть структура struct Base { int a; int b; int c; }; В основном методе main() объявим массив...

12
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.01.2010, 23:46 #2
C
1
2
3
4
for (i = 0; i < sizearray; i++)
{
   fwrite(&structura[i], sizeof(structura), 1, fileout);
}
Для чтения используй
C
1
fread(&structura[i], sizeof(structura), 1, filein)
0
help_me_please
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 67
15.01.2010, 23:48  [ТС] #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <STDIO.H>
#include <FSTREAM.H>
#include <MATH.H>
#include <CONIO.H>
 
const n=5; //max kol-vo zapisey
int len=n; //dlina massiva zapisey
FILE *my_file;
struct zapis { int id;
                         char *famili9; //famili9
                         char *im9; //im9
                         char *ot4estvo; //ot4estvo
                         char *vozrast; //vozrast
                         char *studak; //nomer studen4iskogo
                         char *gruppa; //nomer gruppbl
                         char *metro; //bli}|{aihee metro
                         char *telefon; //nomer telefona
                     };
zapis arr[n]; //objavlenie massiva struktur
void add() //dobavlenie el-ta
{
     cout << "Vvedite familiu";
     cin >> arr[len].famili9; //vvod familii
     cout << "Vvedite im9";
     cin >> arr[len].im9; //vvod imeni
     cout << "Vvedite ot4estvo";
     cin >> arr[len].ot4estvo; //vvod ot4estva
     cout << "Vvedite vozrast";
     cin >> arr[len].vozrast; //vvod vozrasta
     cout << "Vvedite nomer studen4eskogo";
     cin >> arr[len].studak; //vvod nomera studen4eskogo
     cout << "Vvedite nomer gruppbl";
     cin >> arr[len].gruppa; //vvod nomera gruppbl
     cout << "Vvedite nomer telefona";
     cin >> arr[len].telefon; //vvod nomera telefona
     cout << "Vvedite bli}|{aihee metro";
     cin >> arr[len].metro; //vvod bli}|{aihego metro
     len++;
}
void del(int id) //udalenie el-ta
{
     for (int i=id;i<len;i++)
     {
          arr[i].id=arr[i+1].id;
          arr[i].famili9=arr[i+1].famili9;
          arr[i].im9=arr[i+1].im9;
          arr[i].ot4estvo=arr[i+1].ot4estvo;
          arr[i].vozrast=arr[i+1].vozrast;
          arr[i].studak=arr[i+1].studak;
          arr[i].gruppa=arr[i+1].gruppa;
          arr[i].metro=arr[i+1].metro;
          arr[i].telefon=arr[i+1].telefon;
     }
     len--;
}
void save()
{
     char *filename;
     cout << "Vvedite filename: ";
     cin >> filename;
     ofstream ofs("filename");
     ofs << arr;
     ofs.close();
     cout << "Save!";
}
/*void load()
{
     char *filename;
     cout << "Vvedite filename: ";
     cin >> filename;
     ifstream ifs("filename");
     while (!ifs.eof())
     {
 
     ifs.close();
     cout << "Load!";
} */
void main()
{
     clrscr();
     add();
     del(0);
     getch();
}
Добавлено через 1 минуту
это пока что есть.. вот то что последнее void load, в чем там ошибка????
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.01.2010, 23:56 #4
Цитата Сообщение от help_me_please Посмотреть сообщение
char *filename;
cout << "Vvedite filename: ";
cin >> filename;
не хорошо
C++
1
2
3
char filename[255];
cout << "Vvedite filename: ";
cin.getline(filename, 254, '\n');
Кстати для fstream'ов надо использовать file.write/file.read функции

Добавлено через 2 минуты
char *filename; - указатель на символ, причем один, если надо в негоего загнать в строку, требуется с начала выделить память под нее. cin не рекомендую использовать для имени файла, т.к. он считывает до первого пробела.
0
help_me_please
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 67
15.01.2010, 23:58  [ТС] #5
cin.getline(filename, 254, '\n');

а не cin >>getline(filename, 254, '\n');??
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.01.2010, 23:59 #6
Нет, именно через точку.
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
16.01.2010, 00:04 #7
help_me_please, cin>> - это чтение из потока, а cin. - обращение к методу потока cin
0
help_me_please
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 67
16.01.2010, 00:06  [ТС] #8
Load проканало, тока вот теперь сохранение не компелируется
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
16.01.2010, 00:08 #9
В сохранении таже ошибка.
0
help_me_please
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 67
16.01.2010, 00:24  [ТС] #10
C++
1
2
3
4
5
6
{
     clrscr();
     add();
     del(0);
     getch();
}
сюда теперь что то надо вписать я так понимаю?

Добавлено через 10 минут
просто я в программировании вообще нолик(
0
ISergey
Maniac
Эксперт С++
1391 / 902 / 55
Регистрация: 02.01.2009
Сообщений: 2,696
Записей в блоге: 1
16.01.2010, 00:27 #11
Такую структуру не так просто сохранить как кажется..
kazak, твой пример не прокатит..
http://www.cyberforum.ru/visual-cpp/...read21537.html
1
help_me_please
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 67
16.01.2010, 20:31  [ТС] #12
о господи((( я ничего не понимаю(( я туп(( что мне конкретно писать и куда??? напишите если не проблемно

Добавлено через 19 часов 45 минут
HELP!!!!
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,851
16.01.2010, 21:30 #13
Цитата Сообщение от kazak Посмотреть сообщение
C
1
2
3
4
for (i = 0; i < sizearray; i++) 
{
   fwrite(&structura[i], sizeof(structura), 1, fileout); 
}
можно немного по-другому:
C
1
2
3
4
5
6
#include <stdlib.h>
...
if ( fwrite(array_of_structs, sizeof(struct tagname), structs_in_array, fileout) != structs_in_array ){
  fprintf(stderr, "can't write to file!\n");
  exit(1);
}
Добавлено через 5 минут
Цитата Сообщение от ISergey Посмотреть сообщение
Такую структуру не так просто сохранить как кажется..
это да... при таком подходе всё сложнее - запишется по 4 байта ничего уже не значащих адресов... либо в структуре делать строки фиксированной длинны, либо очень хитро читать/записывать из файла/в файл...
0
16.01.2010, 21:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2010, 21:30
Привет! Вот еще темы с ответами:

Массив структур - C++
Добрый вечер. Создал массив структур, но при вводе элементов программа падает( Подскажите пожалуйста, где может быть ошибка? using...

Массив структур - C++
Пожалуйста, помогите с программой. Задание: разработать программу , позволяющую добавлять данные структур с указанными полями в массив....

Массив структур - C++
Информация о дисциплине содержит название, количество часов лекций, количество часов практических занятий, фамилию преподавателя. Вывести...

Массив структур - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class TestContetnt { public: struct Task {


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

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

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