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

Запись структуры в файл - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 83, средняя оценка - 4.75
fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
24.04.2011, 23:03     Запись структуры в файл #1
имеется одномерный массив типа структуры base
C++
1
2
3
4
5
6
struct base
{
   String name;
   String work;
   String year;
}
каким образом записать такую структуру в файл на форме?
ofstream file(....)
file.write(....) - тут требуется char или массив char, а как быть с String?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 23:03     Запись структуры в файл
Посмотрите здесь:

Запись структуры в файл. C++
Запись структуры в файл C++
Запись структуры в файл. C++
C++ Запись структуры в файл
Запись структуры в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dyosick
 Аватар для dyosick
61 / 61 / 6
Регистрация: 25.08.2008
Сообщений: 178
24.04.2011, 23:37     Запись структуры в файл #2
По-моему можно так:

C++
1
2
3
4
base b("John","Hospital","1989");
ofstream file(newfile.txt)
 
file<<b.name<<"  "<<b.work<<"  "<<b.year<<"\n";
Добавлено через 16 минут
Некрасиво, но работает:

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
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
 
using namespace std;
 
struct base
{
   string name;
   string work;
   string year;       
};
 
int main()
{
ofstream file("C:\\newfile.txt");
vector<base> s;
base b;
base d;
 
b.name="John";
b.work="Hospital";
b.year="1989";
 
d.name="Dirk";
d.work="institut";
d.year="2000";
 
s.push_back(b);
s.push_back(d);
 
for(int i=0;i<s.size();++i)
   file<<s[i].name<<" "<<s[i].work<<" "<<s[i].year<<"\n";
   
file.close();
 
system("pause");
return 0;    
}
Антон555
13 / 13 / 0
Регистрация: 22.03.2011
Сообщений: 84
24.04.2011, 23:51     Запись структуры в файл #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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
  struct base
    {
       string name;
       string work;
       string year;
    };
int main()
{
    int const MAX=2; //кол-во экземпляров структуры//
    base b[MAX];
       for (int i=0;i<MAX;++i)
          {
              cout << "Enter name :" << endl; 
              cin >> b[i].name;
              cout << "Enter work :" << endl;
              cin >> b[i].work;
              cout << "Enter year :" << endl;
              cin >> b[i].year;
       }
    
    ofstream outfile;
    outfile.open("Out.txt");
       for (int i=0;i<MAX;++i)
            outfile << b[i].name << " " << b[i].work << " " << b[i].year << endl;
 
       system("pause");
       return 0;
}
fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
25.04.2011, 00:06  [ТС]     Запись структуры в файл #4
это понятно, спасибо.
у меня же дело всё на форме... из стрингрида в массив, а уже из массива в файл... а там тип UnicodeString
никак не могу записать
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
25.04.2011, 00:49     Запись структуры в файл #5
Цитата Сообщение от fawr Посмотреть сообщение
file.write(....) - тут требуется char или массив char, а как быть с String?
file.write(&str[0], str.size());
fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
25.04.2011, 23:45  [ТС]     Запись структуры в файл #6
как-то так
C++
1
2
3
4
FILE* f;
f = fopen("base.txt","w");
fwrite((char*)mas,sizeof(mas),1,f);
fclose(f);
Yandex
Объявления
25.04.2011, 23:45     Запись структуры в файл
Ответ Создать тему
Опции темы

Текущее время: 09:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru