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

Неправильно считывается структура из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запись в Excel, чтение из файла и проблемы с русским языком http://www.cyberforum.ru/cpp-beginners/thread340207.html
Сразу несколько вопросов… Запись в Excel-евский документ: много читала в интернете и на вашем сайте конкретно, но, поскольку всё было как-то отрывками, а иной раз и вовсе не по теме, хочу конкретно спросить, как САМЫМ лёгким способом записать информацию в Excel-евские ячейки (чтобы программа не только по строчкам, но и по столбцам раскидывала)… Чтение из файла и проблемы с русским языком:...
C++ Программа для записи звуков. Приветствую всех. Хотелось бы узнать как можно реализовать запись звука с микрофона к примеру в формат wav. Подскажите где можно про это почитать или напишите пример. http://www.cyberforum.ru/cpp-beginners/thread340199.html
C++ Include в MakeFile в VS2008
У меня есть проект типа makefile в Visual Studio 2008. когда я пытаюсь подключить заголовки стандартных библиотек .h при компиляции выскакивает много синтаксических ошибок. Нужно ли в самом makefile включать include h файлов? если да, то как это делается? а если нет, то в чем ошибка? Лог ошибок 14>crypto.c 14>c:\winddk\7600.16385.1\inc\api\w incrypt.h(833) : error C2016: C requires...
Вопросы по С++ C++
1) Чем отличается const *char от сhar при использовании в программах? 2) Тип void * так и не понял как и что с ним делать. Видел в функциях в качестве возвращаемого значения зачем он там нужен? 3) Зачем при создании структуры использовать впереди typedef? Типа такого typedef struct klon {};
Visual C++ C++ MFC-приложение, ошибка при рисовании. http://www.cyberforum.ru/cpp-beginners/thread340170.html
Учусь программировать, изучаю MFC. Решил написать простенькое приложение. Суть в том, чтобы на форме отображался прямоугольник(создал для него класс, включающий цвет, координаты и т.д.). Он реагирует на нажатие клавиш, перемещаясь по окну(работает). Все это реализовано в функции, которая вызывается из таймера. Все работает, доволен, но где-то после четырех тысяч вызовов(таймер срабатывает каждые...
C++ Посоветуйте решение. Есть пара значений вида: Значение(тип string) - число(тип float), которые нужно хранить "неразрывно". Значения передаются из другой функции, поэтому изначально количество таких пар не известно. Собственно в чем их хранить? Динамические массивы не предлагать. подробнее

Показать сообщение отдельно
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
08.08.2011, 18:00     Неправильно считывается структура из файла
Записываю структуру А в файл, затем считываю в структуру В. Символы считываются нормально, а вот цвет фона+символа неправильно.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
#include <fstream>
#include <new>
#include <cstdlib>
using namespace std;
 
struct CELL_INFO 
{
    union {
        wchar_t UnicodeChar;
        unsigned char    AsciiChar;
    } Char;
    unsigned short Attributes;
};
 
struct Buffer
{
    int x,y;
    CELL_INFO *content;    
};
 
int main()
{
    Buffer A;
    A.x = 3;
    A.y = 3;
    A.content = new CELL_INFO [9];
    for(int i=0; i<9; i++)
    {
        A.content[i].Char.AsciiChar = 'A'+i;
        A.content[i].Attributes = 15;    
    }
    
//SAVE-------------------------------------------------------------
    if(!A.content)
        return 1;
    {
        ofstream out("A", ios::binary);
        if( out.is_open() == false )
            out.close();
        out<<A.x<<' '<<A.y<<endl;
        for(int i = 0; i<A.y; i++)
        {
            for(int j=0; j<A.x; j++)
                out<<A.content[i*A.x+j].Char.AsciiChar;
            out<<endl;
        }
        out<<endl;
        for(int i = 0; i<A.y; i++)
        {
            for(int j=0; j<A.x; j++)        
                out<<A.content[i*A.x+j].Attributes;        
            out<<endl;
        }
        out.close();
    }
    delete [] A.content;
//END-SAVE--------------------------------------------------------------
    Buffer B;
//LOAD-----------------------------------------------------------
    ifstream in("A", ios::binary);    
    if( in.is_open() == false )
        return 1;
    
    in >> B.x >> B.y;    
    B.content = 0;
 
    int size_xy = B.x*B.y;
    if(size_xy)
    {
        try{
            B.content = new CELL_INFO [size_xy];
        }catch (bad_alloc xa){
            return 1;
        }
 
        for(int i = 0; i<B.y; i++)
        {
            for(int j=0; j<B.x; j++)
                in >> B.content[i*B.x+j].Char.AsciiChar;
        }
        
        for(int i = 0; i<B.y; i++)
        {
            for(int j=0; j<B.x; j++)
                in >> B.content[i*B.x+j].Attributes;
        }
            
    }
    in.close();
//END-LOAD----------------------------------------------------------
 
    if(!B.content)
        return 1;
//END-SAVE--------------------------------------------------------------
    {
        ofstream out("B", ios::binary);
        if( out.is_open() == false )
            out.close();
        out<<B.x<<' '<<B.y<<endl;
        for(int i = 0; i<B.y; i++)
        {
            for(int j=0; j<B.x; j++)
                out<<B.content[i*B.x+j].Char.AsciiChar;
            out<<endl;
        }
        out<<endl;
        for(int i = 0; i<B.y; i++)
        {
            for(int j=0; j<B.x; j++)        
                out<<B.content[i*B.x+j].Attributes;        
            out<<endl;
        }
        out.close();
    }
//END-SAVE--------------------------------------------------------------
    delete [] B.content;
    
    return 0;
}

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