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

Бинарный файл структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Избавиться от 0 на главной и побочной диагоналях квадратной матрицы http://www.cyberforum.ru/cpp-beginners/thread760945.html
В заданной квадратной матрице значения некоторых диагональных элементов равны 0. Переставить строки или столбцы матрицы так, чтобы диагональные элементы стали ненулевыми. В другом случае вывести уведомление о невозможности. Сам пытался сделать, но вышло крайне коряво. Может сможет кто-то помочь. #include <iostream> #include <time.h> using namespace std; int m;
C++ Не работает код! #include <iostream> #include <cstring> using namespace std; #include <process.h> #include <windows.h> const int LEN=80; const int MAX=40; class Stack { private: http://www.cyberforum.ru/cpp-beginners/thread760936.html
C++ Разбить строку(с числами) и записать в массив
Здраствуйте! У меня есть стринг line например "0.1 0.2 0.3 0.4" И мне нужно записать эти числа в массив Я понимаю, что это если не пробел, то записывать можно в другую строку и потом конвентировать в double Но у меня не совсем получается(
Решение уравнение теплопроводности C++
Здравствуйте гики и гуру программирования! Рад поприветствовать всех, вот тоже решил примкнуть к ряду программеров на С, но пока нахожусь фактически на уровне нуля, поэтому хотел попросить помочь написать программу по решению данного уравнения: Задача Большой плоский слиток меди (\lambda = 1.4 кал/г*К*с), имевший температуру То = 300 к нагревается с одной из поверхностей постоянным тепловым...
C++ Виртуальная функция. Создайте класс Matr http://www.cyberforum.ru/cpp-beginners/thread760925.html
/*Создайте класс Matr, определите в нем виртуальную функцию-член matrica(int n), которая определяет сумму элементов квадратной матрицы. Создайте производные классы Matr1 и Matr2 с перегруженной функцией matrica(int n) для нахождения разности главной и побочной диагоналей квадратной матрицы соответственно.*/ Помогите сделать разность главной и побочной диагоналей. Вот что есть... #include...
C++ Игра быки и коровы Условия игры: компьютер генерирует целое четырехзначное число, в котором все цифры раз-личны. Играющий пытается угадать это число, делая несколько попыток. После каждой попытки компьютер сообщает о количестве <<коров>> (цифр, совпадающих по разряду с цифрой в зага-данном числе) и <<быков>> (цифр, имеющихся в загаданном числе, но не совпадающих по раз-ряду) поиском по форуму пользовался. тем... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
15.01.2013, 18:46     Бинарный файл структур
Так, времени разбирать всё нет, поэтому глянул лишь функцию поиска. Вот, что заметил:
1) Строка 143.
C++
1
if (!q) cout<<"Таких игрушек нет"<<endl;
Что за q? У тебя есть функция q, но нет переменной q. Если бы ты тут просто забыл скобки, то ты бы забыл и параметры..
2) Абсолютно не советую считывать или записывать классы/структуры в двоичный файл методом:
C++
1
2
MYCLASS a;
f.read((char*)&a, sizeof a);
В памяти может быть не то выравнивание - это раз. Во вторых, массивы считываться будут абсолютно не правильно (это я поясню в конце).
3) Записывать массив структур (да и вообще массив) при помощи строки 154:
C++
1
g.write ((char*)&p,sizeof p);
нельзя! Проблема та же, что и в пункте 2.
p.s Тут ещё &p зачем-то используется. p - и так указатель, зачем "&"?

----

Что насчет массивов и их записи в дв. файла. Вот смотри:
C++
1
2
3
4
5
6
7
struct SomeStruct
{
char massive[10];
};
..
SomeStruct a;
int x = sizeof(a);
Как думаешь, чему равно x? 10? Не правильно. x == 4, ведь в структуре у тебя хранится указатель на массив, который равен 4ем (в х32 системах). Правильно будет считывать и записывать каждое поле отдельно, без sizeof. Та же проблема со строчкой 153 (пункт №3). Ты считываешь из двоичного файла всего-то 4 байта, а не весь массив.
 
Текущее время: 19:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru