Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение из файла, непонятки с этим. (в Borland c++) 
:(
    Опции темы
maza
Дата 29.11.2003, 22:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Доброго времени суток. Народ подскажите, что делаю не так:
записываются структуры xxx по одной пока не будет достигнуто условие (напр кол-во записей =5)
Код

struct xxx
{
 char a[10];
 char b[5];
 float c;
 int d;
};
...

struct xxx m;
printf("%s   %s   %f   %d", m.a, m.b, &m.c, &m.d);
fwrite(&m, sizeof(struct xxx), 1, tmp);
...

перед fwrite, ессно, вводятся эти данные каким-нибудь юзером.
при чтении выводит на экран 5 записей (в строку, по полям через пробел)
Код

void studHome(FILE *tmp)
{
 struct xxx m;
 ...
   while (!feof(tmp))
   {
     fread(&m, sizeof(struct xxx), 1, tmp);
     printf("\n%s %s %3.1f %d", m.a, m.b, m.c, m.d);
 ...
   }
 ...
 }
}

но почему-то повторяет 5-ю запись 2 раза notify.gif butbut.gif
И еще, мона ли в в поле, напр. "а", и в файл сохранять только 10 символов, а лишние чтобы отбрасывались?
  Вверх
Azer
Дата 8.12.2003, 15:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не знаю, отвечали ли Вам (только,что прочел Вашу поблему 08.12.2003 15:34).
Все очень просто: при выводе Вы делаете попытку чтения и сразу печатаете.
при этом при чтении после конца файла происходит сначала печать буфера (а в нем сидит последняя запись), а уж потом проверяется на конец файла.
Вам надо бы ПЕРЕД циклом сделать чтение;
затем в цикле СНАЧАЛА печатать, ПОТОМ пытаться прочесть ледующую запись.
Тогда все будет как надо.
  Вверх
bel_nikita
Дата 8.12.2003, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



do {
.....
} while(!feof(tmp));



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
_hunter
Дата 8.12.2003, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



to maza
можно, но писать придется только по полям smile.gif


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
NiJazz
Дата 8.12.2003, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



maza, можно работать с помощью API: WriteFile и ReadFile.
С ними более всё наглядно. Но я не гарантирую, что получится. smile.gif
Толкьо не забудь: #include <windows.h>
PM MAIL   Вверх
Mellorn
Дата 12.12.2003, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.12.2003

Репутация: 1
Всего: 1



а в Borland C можно писать с помощью API? По моему нет =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0896 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.