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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 83, средняя оценка - 4.75
fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
#1

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

24.04.2011, 23:03. Просмотров 12742. Ответов 5
Метки нет (Все метки)

имеется одномерный массив типа структуры 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++
#include <stdio.h> #include <conio.h> #include "stdafx.h" int main() { struct TDataTime { int Day; int...

Запись структуры в файл - C++
Дано код....описание : Запись множество обиектов в файл когда размеры порождаюших классов разные Но я ни как не могу найти свзяь между...

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

Запись структуры в файл - C++
Написать программу выдающую на печать следующую информацию: фамилию сборщика и общее количество деталей, собранное им за неделю; фамилию...

Запись структуры в файл - C++
С клавиатуры вводится данные в структуру, и эту структуру надо напечатать в файл. Структура имеет вид: struct people { char*...

запись структуры в файл - C++
#include <cstdio> #include <fstream> #include <iostream> using namespace std; struct MyStruct { char name; char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2011, 23:45
Привет! Вот еще темы с ответами:

Запись структуры в файл - C++
Работаю в Borland C(чистый С) Нужно: Создать файл, который содержит ведомости об картотеке в регистратуре поликлинники. Данные должны...

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

Запись структуры в файл - C++
Хочу записать структуру в файл. Но записывается только одна структура , последняя. #include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include...

Запись структуры в файл - C++
Есть структура из 3 чисел типа дабл, нужно записать в файл .тхт (каждая запись на новой строке) так, что бы потом можно было его открыть и,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.04.2011, 23:45
Ответ Создать тему
Опции темы

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