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

удаление "строки" в бинарном файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возвращение функциями указателей http://www.cyberforum.ru/cpp-beginners/thread233233.html
Доброго времени суток:) Помогите понять код!!!Суть вопроса описана в коментах в коде. Условие задачи:В программе демонстрируеться использование указателя в качестве типа возвращаемого значения.Ф-ция get_substr() возвращает указатель на первую подстроку(найденную в строке),которая совпадает с заданной.Если заданная подстрока не найдена,возвращается нулевой указатель. #include "stdafx.h"...
C++ Описать сведения о книгах Вот это прога, которая выносит мой мозг уже ни один час.... Преподу надо, чтоб прога по второму варианту (коду) работала так же как первая вот прога рабочая (Первая) #include <conio.h> #include <dos.h> #include <iostream.h> #include <string.h> #include <stdio.h> http://www.cyberforum.ru/cpp-beginners/thread233230.html
C++ Метод Рунге-Кутта 4-го порядка
#include <stdio.h> #include <iostream> #include <math.h> using namespace std; double f(double x, double y) { return(2*y/x+x*x*pow(2.7,x)); }
Что такое Особенности Адресной Арифметики? C++
Что такое Особенности Адресной Арифметики? где-то вроде читал,что к этому относится инкрементирование...
C++ МАССИВЫ:Что такое приведённый индекс? http://www.cyberforum.ru/cpp-beginners/thread233210.html
Что такое приведённый индекс? ну подскажите пожалуйста(
C++ Массива:что такое приведённый индекс? Что такое приведённый индекс? подробнее

Показать сообщение отдельно
kNOpk@
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 9
24.01.2011, 03:21     удаление "строки" в бинарном файле
есть файл .dat. в нем записаны структуры. я удаляю запись /т е одну из структр/. удаляю записывая на ее место пустую структуру и сохраняю результат во временный файл. но удаляется коряво. удаляет не всю структуру а только ее часть. пример

в файле записано

1 Avt1 nazv1 izd1 1999 123 129.48
2 avt2 nazv2 izd2 1997 144 17.33

после удаления получается вот что
1 Avt1 nazv1 izd1 1999 123 129
.33
почему так получается?
у меня есть только вариант, что это из за неправильной установки курсора
C++
1
fseek(readPtr, (number - 1) * sizeof ( struct home_lib), SEEK_SET);
а его постановка зависит от размера структуры.
структуру объявляю следующим образом
C++
1
2
3
4
5
6
7
8
9
10
struct home_lib
{
   int numer;
   char avtor[5];
   char nazvanie[8];
   char izd_vo[5];
   int god_izd;
   int k_vo_str;
   double cena;
}
спасибо кто откликнется!

Добавлено через 1 час 15 минут
если изменить максимальный размер длин строк, то результат удаления будет уже другой...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru