С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
1

Записать по-битово в файл

03.09.2013, 13:10. Показов 661. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно записать по-битово в файл. Вот на етой строке компилятор кидает ошибку

out.write((*char)&this, sizeof(car));


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include"iostream"
#include"fstream"
 
using namespace std;
 
class car
{
private:
    char* mark;
    char* model;
    char* price;
public:
    car()
    {}
    car(char* mark1, char* model1, char* price1)
    {
    mark=mark1;
    model=model1;
    price=price1;
    }
    
    void appendToFile(char* file)
    {
        ofstream out(file, ios::app);
    out<<mark<<endl;
    out<<model<<endl;
    out<<price<<endl;
    out.close();
    }
    void toBinaryFile(char* file)
    {
        ofstream out(file, ios::binary|ios::app);
            out.write((*char)&this, sizeof(car));
            out.close();
    }
 
    car* findByName(char* mark,char* file)
    {
        car* res;
    ifstream in(file);
        while(!in.eof())
        {
        char* str=new char[40];
        in>>str;
        if(!strcmp(str,mark))
        {
            char* model=new char[40];
        in>>model;
            char* price=new char[40];
        in>>price;
        car tmp(mark,model,price);
        res=&tmp;
        break;
                }
        else res=NULL;
        }
        in.close();
        return res;
    
        }
    void print()
    {
        cout<<mark<<" "<<model<<" "<<price<<endl;
    }
};
 
int main()
{
    
    car c("BMW", "M5","50000");
    //c.appendToFile("outbox.txt");
    c.toBinaryFile("outbox.txt");
    car* avto=c.findByName("BMW","outbox.txt");
    avto->print();
    system("pause");
    return 0;
 
}
Прошу адекватной помощи и объяснения
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2013, 13:10
Ответы с готовыми решениями:

Выражение должно быть доступным для изменения. Решение - только по-битово копировать?
Помогите плиз. Запутался голова не варит. char Name1 ={&quot;VakaKaka&quot;, &quot;MakaTaka&quot;}; char sName; ...

Два числа записать в файл input, сравнить эти числа и если A < B записать в файл Output этот знак
Решаю такую задачу: нужно два числа записать в файл input потом сравнить эти числа, и если A &lt; B...

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Не могу понять почему не работает вот этот кусок текста. ofstream q (&quot;1.part&quot;); for (int...

Записать в файл f целые числа, потом из файла f записать в файл g нечетные числа
Как правильно написать программу? * Робота с файлами. Нужно записать в файл f целые числа, потом...

10
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
03.09.2013, 13:24 2
Цитата Сообщение от Atlant_V Посмотреть сообщение
записать по-битово в файл
Нельзя.
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
03.09.2013, 13:26 3
out.write((*char)&this, sizeof(car)); вы пытаетесь во первых взять указатель от указателя на экземпляр класса (&this)
во вторых записать его в файл, когда нужно писать именно данные из класса

C++
1
2
3
out.write(mark, strlen(mark));
out.write(model, strlen(model));
out.write(price, strlen(price));
в третьих sizeof не возьмет размер строки - в случае sizeof(*char) он вернет размер указателя, надо пользоваться функциями взятия размера строки
0
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 13:51  [ТС] 4
Raali, заменил на Ваш вариант,но дальше не работает. Или я еще что-то не понял?
0
2686 / 2258 / 244
Регистрация: 03.07.2012
Сообщений: 8,219
Записей в блоге: 1
03.09.2013, 16:17 5
Прежде чем просить "адекватной помощи и объяснения" надо адекватно объяснить задачу: что, куда и зачем писать.
А то часто пишут одно, хотят другое, а надо третье
0
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 16:48  [ТС] 6
Цитата Сообщение от zer0mail Посмотреть сообщение
Прежде чем просить "адекватной помощи и объяснения" надо адекватно объяснить задачу: что, куда и зачем писать.
А то часто пишут одно, хотят другое, а надо третье
Как мне поставили условие, так я и здесь написал
тогда уточню и спрошу еще раз, если сам не допру.
0
2686 / 2258 / 244
Регистрация: 03.07.2012
Сообщений: 8,219
Записей в блоге: 1
03.09.2013, 17:12 7
Никогда не видел заданий, сформулированных так: "записать по-битово в файл"
0
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 17:31  [ТС] 8
Цитата Сообщение от zer0mail Посмотреть сообщение
никогда не видел заданий, сформулированных так: "записать по-битово в файл"
препод на ходу придумал)))
0
2686 / 2258 / 244
Регистрация: 03.07.2012
Сообщений: 8,219
Записей в блоге: 1
03.09.2013, 17:50 9
Но мы-то при этом не присутствовали и не в курсе, что и как надо записать (а телепаты и ясновидцы в отпуске).

Если некоторые этого не понимают, то как им понять С++?
0
Dmitriy_M
03.09.2013, 17:58
  #10

Не по теме:


Цитата Сообщение от Atlant_V Посмотреть сообщение
Нужно записать по-битово в файл
Это физически невозможно. Если вы этого не понимаете, то что вы тут делаете?

0
8 / 8 / 0
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 18:03  [ТС] 11
Dmitriy_M, Я тут учусь, поэтому я тут!
0
03.09.2013, 18:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2013, 18:03
Помогаю со студенческими работами здесь

Файл символов. Все цифры записать во второй файл, а остальные символы - в третий файл
Имеется файл, элементами которого являются отдельные символы. Все цифры записать во второй файл, а...

Текстовый файл. Заполнить файл последовательность случайных чисел. Найти сумму наибольшего и наименьшего из них и записать в новый файл
Заполнить файл последовательность случайных чисел. Найти сумму наибольшего и наименьшего из них и...

Дан файл F, записать в файл G чётные числа, а в файл H все нечётные
Дан файл F, содержащий целые числа. Записать в файл G все чётные числа из файла F, а в файл H все...

Четные записать в файл even.txt, нечетные записать в файл odd.txt
Тема: Файлы....Составить программу,которая считает с клавиатуры числа и четные записывает в файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru