Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Структуры в borland c++ 3.1 / 12 сообщений из 12, страница 1 из 1
01.12.2006, 21:42
    #34171891
frodo911
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Подскажите пожалуйста как в borland c++ 3.1 записать структуру в файл ( удаление, поиск ),
если можно пример.
...
Рейтинг: 0 / 0
02.12.2006, 00:52
    #34172058
XED
XED
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
я думаю, есть миллион с половиной способов... :) нужно просто проявить сообразительность...
ну, например, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
struct MYSTRUCT {
  int a, b;
  char str[ 10 ];
  };
...
void save (MYSTRUCT* s) {
  fprintf (file, "%d %d %s\n", s->a, s->b, s->str);
}
/* в каждой новой строке описывается новый объект, каждое поле которого указывается через ппробел; внутри строки тоже могут быть ппробелы, но т.к. она пишется в конце - это не важно
если же строк должно быть внутри объекта больше, то можно придумать что нибудь ещё... */

это пример написанный на шару и потому прямо так, с ходу может не работать
главное - смысл!
...
Рейтинг: 0 / 0
02.12.2006, 01:10
    #34172067
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
XED frodo911...( удаление, поиск )..
fprintf (file, "%d %d %s\n", s->a, s->b, s->str);

(зевая)

Я думаю, студент собирается работать со структурами на бинарном уровне.

150$
...
Рейтинг: 0 / 0
02.12.2006, 17:33
    #34172479
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
mayton XED frodo911...( удаление, поиск )..
fprintf (file, "%d %d %s\n", s->a, s->b, s->str);

(зевая)

Я думаю, студент собирается работать со структурами на бинарном уровне.

150$

20$
...
Рейтинг: 0 / 0
02.12.2006, 18:04
    #34172505
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
XEDя думаю, есть миллион с половиной способов... :) нужно просто проявить сообразительность...
ну, например, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
struct MYSTRUCT {
  int a, b;
  char str[ 10 ];
  };
...
void save (MYSTRUCT* s) {
  fprintf (file, "%d %d %s\n", s->a, s->b, s->str);
}
/* в каждой новой строке описывается новый объект, каждое поле которого указывается через ппробел; внутри строки тоже могут быть ппробелы, но т.к. она пишется в конце - это не важно
если же строк должно быть внутри объекта больше, то можно придумать что нибудь ещё... */

это пример написанный на шару и потому прямо так, с ходу может не работать
главное - смысл!

Вообще то правильнее будет так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
struct MYSTRUCT s;
FILE* f;

Запись:

fwrite (&s, sizeof(s),  1 , f);

Чтение:

fread(&s, sizeof(s),  1 , f);

...
Рейтинг: 0 / 0
02.12.2006, 18:05
    #34172508
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Блин, забыл

10$
...
Рейтинг: 0 / 0
02.12.2006, 18:40
    #34172525
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Ruslan.Isbarov XEDя думаю, есть миллион с половиной способов... :) нужно просто проявить сообразительность...
ну, например, так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
struct MYSTRUCT {
  int a, b;
  char str[ 10 ];
  };
...
void save (MYSTRUCT* s) {
  fprintf (file, "%d %d %s\n", s->a, s->b, s->str);
}
/* в каждой новой строке описывается новый объект, каждое поле которого указывается через ппробел; внутри строки тоже могут быть ппробелы, но т.к. она пишется в конце - это не важно
если же строк должно быть внутри объекта больше, то можно придумать что нибудь ещё... */

это пример написанный на шару и потому прямо так, с ходу может не работать
главное - смысл!

Вообще то правильнее будет так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
struct MYSTRUCT s;
FILE* f;

Запись:

fwrite (&s, sizeof(s),  1 , f);

Чтение:

fread(&s, sizeof(s),  1 , f);



открыл бы для виду...
...
Рейтинг: 0 / 0
02.12.2006, 18:46
    #34172531
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Aklinоткрыл бы для виду...

Чего?
...
Рейтинг: 0 / 0
02.12.2006, 18:54
    #34172537
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Aklin

Торможу :)

Ну думаю автор треда файл то умеет открывать :)... Но если все так плохо:

Код: plaintext
1.
2.
3.
4.
if ((f = fopen("file.ext", "r")) == NULL)
{
   // кердык
}
...
Рейтинг: 0 / 0
02.12.2006, 18:57
    #34172541
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Для записи:

Код: plaintext
1.
2.
3.
4.
if ((f = fopen("file.ext", "w")) == NULL)
{
    ...
}
[/quot]
...
Рейтинг: 0 / 0
03.12.2006, 01:23
    #34172734
XED
XED
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
Ruslan.Isbarov
Вообще то правильнее будет так:
Код: plaintext
1.
2.
3.
4.
5.
6.
struct MYSTRUCT s;
FILE* f;
Запись:
fwrite (&s, sizeof(s),  1 , f);
Чтение:
fread(&s, sizeof(s),  1 , f);

а если в срукттуре MYSTRUCT случится оказия и появится поле char*? или не дай боже void*?
...
Рейтинг: 0 / 0
03.12.2006, 02:32
    #34172749
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структуры в borland c++ 3.1
XEDа если в срукттуре MYSTRUCT случится оказия и появится поле char*? или не дай боже void*?

Ну в вышеприведенном коде оказии еще не оказалось. А вообще fprintf(...) мне самому больше нравится, однако fwrite(...) / fread(...) ИМХО для новичка нагляднее... :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Структуры в borland c++ 3.1 / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]