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

Вывести некоторые элементы массива в двоичный файл - C++

Восстановить пароль Регистрация
 
Calumbuber
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
09.01.2014, 00:11     Вывести некоторые элементы массива в двоичный файл #1
исправьте пожалуйста

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
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
 
class tanec
{
public:
char Name[20];
float vrem;
int kol;
char strana;
void output();
tanec(char *name,int d,int n,float v){strcpy(Name,name);kol = d;strana=n;vrem=v;}
tanec(){};
};
void tanec::output()
{
    cout<<Name<<" "<<kol<<" "<<strana<<" "<<vrem<<endl;
};
const int M=2;
int main()
{
    setlocale(LC_ALL,"Russian");
    tanec file[M];
    float volume;
    int data;
    int number;
    char Name[10];
char a[M];
    ifstream in("InputText.txt");
    ofstream out("Output.txt");
    for(int i=0;i<M;i++){in>>file[i].Name;in>>file[i].strana;in>>file[i].vrem;in>>file[i].vrem;}
    for(int i=0;i<M;i++){out<<file[i].Name;out<<file[i].strana;out<<file[i].vrem;out<<file[i].kol;}
    ofstream outb("Binary.dat",ios::binary);
    int count=0;
    for(int i=0;i<M;i++)
        if((file[i].kol>0)&&(file[i].vrem<15)){
            outb.write((char*)(file[i].Name),sizeof(file[i].Name));
            outb.write((char*)&file[i].strana,sizeof(file[i].strana));
            outb.write((char*)&file[i].vrem,sizeof(file[i].vrem));
            outb.write((char*)&file[i].kol,sizeof(file[i].kol));
            count++;
            }
        outb.close();
        ifstream inb("Binary.dat",ios::binary); 
        for(int i=0;i<count;i++)
        {
            inb.read((char*)&file[i].Name,sizeof(file[i].Name));
            inb.read((char*)&file[i].strana,sizeof(file[i].strana));
            inb.read((char*)&file[i].vrem,sizeof(file[i].vrem));
            inb.read((char*)&file[i].kol,sizeof(file[i].kol));
            cout<<file[i].Name<<endl;
            cout<<file[i].strana<<endl;
            cout<<file[i].vrem<<endl;
            cout<<file[i].kol<<endl;
        }
        system("PAUSE");
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 00:11     Вывести некоторые элементы массива в двоичный файл
Посмотрите здесь:

C++ Как "подкрасить" некоторые элементы массива на выводе во время выполнения программы
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4) C++
C++ Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый
C++ Массив-ссылка на некоторые элементы другого массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
09.01.2014, 11:01     Вывести некоторые элементы массива в двоичный файл #2
исправьте
Что исправлять ?
Calumbuber
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
09.01.2014, 11:03  [ТС]     Вывести некоторые элементы массива в двоичный файл #3
код
у меня получается пустая консоль
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
09.01.2014, 11:29     Вывести некоторые элементы массива в двоичный файл #4
у меня получается пустая консоль
Вы создаете массив классов tanec, а кто данные будет вводить ? Потом вы записывате пустые данные классов в файл.

C++
1
2
3
4
5
6
7
8
9
10
//.....
tanec file[M];
for(int i = 0; i < M; ++i)
{
 std::cin >> file[i].Name;
 std::cin >> file[i].vrem;
 std::cin >> file[i].kol;
 std::cin >> file[i].strana;
}
//...........
Добавлено через 2 минуты
Хочу вам предложить по другому, в место класса создайте структуру и записывайте в файл целую структуру, а не отдельные поля.
Yandex
Объявления
09.01.2014, 11:29     Вывести некоторые элементы массива в двоичный файл
Ответ Создать тему
Опции темы

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