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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
#1

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

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

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2013, 13:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Записать по-битово в файл (C++):

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

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

Дан файл. Записать в другой файл строки, которые являются палиндромами. - C++
Помогите пожалуйста с задачей: &quot;Дан файл а. Записать в файл с те строки и их номера в исходном файле, которые являются...

Дан целочисленный файл А. Записать в файл В все кратные трём числа из А - C++
Дан целочисленный файл А. Записать в файл В все кратные трём числа из А. Вот что я написал: #include &lt;cstdlib&gt; #include &lt;iostream&gt; ...

Дан символьный файл f. Записать в файл g элементы файла f в обратном порядке - C++
Помогите написать программу

Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке - C++
Собственно само задание. 4). Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке

10
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
03.09.2013, 13:24 #2
Цитата Сообщение от Atlant_V Посмотреть сообщение
записать по-битово в файл
Нельзя.
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,065
Завершенные тесты: 1
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
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 13:51  [ТС] #4
Raali, заменил на Ваш вариант,но дальше не работает. Или я еще что-то не понял?
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
03.09.2013, 16:17 #5
Прежде чем просить "адекватной помощи и объяснения" надо адекватно объяснить задачу: что, куда и зачем писать.
А то часто пишут одно, хотят другое, а надо третье
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 16:48  [ТС] #6
Цитата Сообщение от zer0mail Посмотреть сообщение
Прежде чем просить "адекватной помощи и объяснения" надо адекватно объяснить задачу: что, куда и зачем писать.
А то часто пишут одно, хотят другое, а надо третье
Как мне поставили условие, так я и здесь написал
тогда уточню и спрошу еще раз, если сам не допру.
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
03.09.2013, 17:12 #7
Никогда не видел заданий, сформулированных так: "записать по-битово в файл"
0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 17:31  [ТС] #8
Цитата Сообщение от zer0mail Посмотреть сообщение
никогда не видел заданий, сформулированных так: "записать по-битово в файл"
препод на ходу придумал)))
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
03.09.2013, 17:50 #9
Но мы-то при этом не присутствовали и не в курсе, что и как надо записать (а телепаты и ясновидцы в отпуске).

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

Не по теме:


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

0
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
03.09.2013, 18:03  [ТС] #11
Dmitriy_M, Я тут учусь, поэтому я тут!
0
03.09.2013, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 18:03
Привет! Вот еще темы с ответами:

Файл: Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n. - C++
Помогите подготовиться к отчету.Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n.Вывести на экран все компоненты...

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

дан текстовый файл.определить количество нечетных чисел и записать их в др текст файл - C++
Очень Простая задача

Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде - C++
грозят отчислением, нужно решить


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru