Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Неполадка при записи данных в файл. c++

Sanchez Знаток (353), на голосовании 11 лет назад
Создал файл произвольного доступа. Загнал в него 10 записей (структуры) . Записывал так:
ClientFile.write((char*)&blankClient2, sizeof(blankClient2));
Когда открываю сам файл, в нём вижу 3 строки (Хотя символов перехода на новую строку нигде физически не было) . В дальнейшем из-за перехода на новую строку происходит ошибка при чтении. Первые 4 структуры считывает верно, но как только заканчивается 1 строка в файле, структура начинает криво читаться - данные искажаются. (видимо, из-за постороннего символа '\n').
Пробовал сначала делать запись в один файл, а затем перезаписывать во второй, при этом пропуская
'\n', не помогло: во втором файле все данные уместились в 1 строку, но всё равно при чтении возникала та же ошибка, словно какой-то лишний символ остался на том же месте.
Откуда могут возникать эти посторониие символы при записи? И как их убрать.
Дополнен 11 лет назад
Голосование за лучший ответ
Зло Просветленный (38869) 11 лет назад
выложи целиком код на pastebin.com
Вася Пупкин Гуру (4525) 11 лет назад
Вы взяли указатель на структуру, и сказали программе, что там лежит char*?
Потом запихнули все это в файл?
Я не помню как там и что там.. .
Вы в каком формате файл открываете и пишете в него? В текстовом или в бинарном?
ЗлоПросветленный (38869) 11 лет назад
я так понимаю, автор хочет кусок памяти записать в файл (правда, непонятно, почему не unsigned char*). наверное, при считывании memcpy делает.
но без кода все равно не понятно, в чем проблема =)
Вася Пупкин Гуру (4525) В таком случае надо файл открывать/писать/читать в бинарном виде. Если бинарные данные писать в текстовый файл, то вылазят примерно такие косяки, как у автора. Но я не уверен, хотел уточнить. Но автор запил и не показывается...
Похожие вопросы