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

Файл произвольного доступа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Делимся знаниями по С++ http://www.cyberforum.ru/cpp-beginners/thread329054.html
По вашему зачем нужна виртуальная функция в программе? Какой от нее толк если она вызывается как обычная функция. Да я знаю что полиморфизм тут. Но по мне так достаточно одного базового класса который играет роль обобщенного интерфейса. Там тоже есть функции... У меня уже есть своя версия насчет виртуальной функции зачем она нужна и как её использовать в пользу в программе. Я хотел бы услышать...
C++ Программа на рекурсию - Перестановка ! Доброго времени суток, уважаемые знатоки. Возникла проблема с решением данной программы. Надеюсь услышать не глупые советы в стиле - решается простой рекурсией, или что тут всё просто как два пальца Суть : Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. Ввод В первой строке файла находится исходная строка. Вывод Вывести в каждой... http://www.cyberforum.ru/cpp-beginners/thread329004.html
C++ Функции языка с++ и считывание данных в массив
Помогите найти ошибку в решении задачки на функции с++ и хранение данных в массиве. Программа должна запрашивать ввод данных (счета при какой-то игре) и сохранять их в массив, после чего считать средний результат. Счет данных и подсчет среднего значения должны управляться отдельными функциями. Максимальное кол-во данных - 10. У пользователя должна быть возможность прерывать ввод данных при вводе...
C++ Пмогите допилить програмку
#include <iostream> using namespace std; int main() { struct list { int data; list *next; list *prev; }; list *cur=0;
C++ Форматирование тексту + ошибки + лишнее http://www.cyberforum.ru/cpp-beginners/thread328954.html
Вот задача + решение // xz.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> using std::cout; using std::cin; using std::endl;
C++ Функции языка с++ Пожалуйста не поленитесь, прочитайте всё и помогите :) . Заранее СПАСИБО! Разработайте функцию calculate(), принимающую два значения типа double и указатель на функцию, которая принимает в качестве аргументов два значения типа double и возвращает значение типа double. Функция calculate() также должна иметь тип double. Она должна возвращать значение, вычисляемое функцией, на которую указывает... подробнее

Показать сообщение отдельно
Bers
Заблокирован
03.07.2011, 16:48     Файл произвольного доступа
В код особливо не втыкал...
но могу предположить, что
file.write(reinterpret_cast<const char*>(&client),sizeof(ClientData)); //записывает в файл содержимое некоторого куска памяти.

И раз уж данные в файле каждый раз разные, стало быть... в самой памяти каждый раз разное....

А что там вообще в памяти?

Цитата Сообщение от Gepar Посмотреть сообщение
int ID; //номер
char name[15]; //имя
double balance; // баланс
А там есть массив чаров, который нигде явно нулями не инициализируется, а потому имеет полное право содержать всякий разный мусор.

Таким образом, кусок памяти выденный под этот массив каждый раз может содержать разные наборы ноликов и единичек.

Не знаю, как точно работает ваш сеттер. Но если ваш сеттер устанавливает дефолтное "",
то в лучшем случае только первый элемент обнуляется (если вообще обнуляется) и последний - нулём-терминатором.

А весь остальной мусор как был, так и остаётся.


По моему скромному мнению, вы неверно сериализуете данные.
Нужно загонять в непрерывный блок памяти значение полей данных, а не толкать в файл тупо кусок памяти целиком, со всевозможным сопутствующим мусором....


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