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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись структуры в конец файла 
:(
    Опции темы
Ozerich
Дата 3.5.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

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



Код


fstream inFile("input.txt", ios::in | ios::out);
inFile.seekp((index- 1) * sizeof(ClientData));
inFile.write(reinterpret_cast<const char *>(&client), sizeof(ClientData));



Если записывать в середину файла то код работает. Но вот почему не работает когда записываю в конец?

--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
toxx
Дата 3.5.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я так записывал в конец.
Код

fstream inFile("input.txt",ios::app);


Это сообщение отредактировал(а) toxx - 3.5.2010, 22:35
PM MAIL   Вверх
Ozerich
Дата 3.5.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

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



Не работает всё равно. Мне надо например если файл пустой записать на место n-ой cтруктуры свою.
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
qweqwe
Дата 4.5.2010, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Ozerich @  3.5.2010,  22:11 Найти цитируемый пост)
Если записывать в середину файла то код работает. Но вот почему не работает когда записываю в конец?

"не работает" - это очень широкое понятие, как именно не работает?
PM MAIL   Вверх
Ozerich
Дата 4.5.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

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



Если в файл такой:структураструктураструктура..........структура. То на место 4-ой структуры записывает а на место например 54ой не записывает
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
qweqwe
Дата 4.5.2010, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Member functions inherited from ios

eof     Check if eofbit is set (public member function)
fail     Check if either failbit or badbit is set (public member function)
bad     Check if badbit is set (public member function)
exceptions     Get/set exception mask (public member function)

я это имел ввиду

не знаю как это реализовано в iostream, но если файл открыт на запись, то можно переместить файловый указатель за его конец и выполнить запись, смотри какая именно ошибка там происходит

Добавлено через 6 минут и 30 секунд
мне кажется, seekp перемещает не файловый указатель, а указатель на позицию чтения из внутреннего буфера, видимо что-бы решить эту проблему, нужно писать только в конец файла, а не в произвольное место
seekp возвращает -1 в случае ошибки, write - устанавливает флаг badbit
PM MAIL   Вверх
xvr
Дата 6.5.2010, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Никакой stream не сможет записать что то ЗА границей файла, можно только дописать в конец. Так что если вам надо записать 54ю структуру, все предыдущие 53 придется записать тоже.
Увеличить размер файла (с заполнением полученных дырок нулями) можно средствами ОС, но через fstream они не доступны

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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