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

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

Войти
Регистрация
Восстановить пароль
 
Calumbuber
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
#1

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

09.01.2014, 00:11. Просмотров 343. Ответов 3
Метки нет (Все метки)

исправьте пожалуйста

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

Записать в двоичный файл столбцы массива, у которых первый и последний элементы имеют одинаковые значения - C++
Создать двоичный файл и записать в него двумерный целочисленный массив размером n×m. Записать в двоичный файл F2 те столбцы массива, у...

Запись массива в двоичный файл - C++
Здравствуйте. Нужно организовать заполнение двоичного файла случайными целыми числами в интервале . Какая ошибка в моей программе?? ...

Записать в двоичный файл строку, потом считать ее и вывести на экран - C++
Здравствуйте! Помогите советом или реализацией)

Из строки вывести некоторые элементы в новую строку - C++
Есть строка string: qqq-www aaa-sss zzz-xxx Должно получиться: qqq aaa zzz

Возвести в квадрат некоторые элементы массива - C++
Если у массива А(20) есть элемент, равный квадрату последнего элемента,то все элементы, следующие за ним, возвести в квадрат, иначе вывести...

Массив-ссылка на некоторые элементы другого массива - C++
У меня тут возникла идея. Есть большой двумерный массив, но не все строки этой матрицы нам нужны. Индексы нужных строк записаны в другой...

3
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
09.01.2014, 11:01 #2
исправьте
Что исправлять ?
0
Calumbuber
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
09.01.2014, 11:03  [ТС] #3
код
у меня получается пустая консоль
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
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 минуты
Хочу вам предложить по другому, в место класса создайте структуру и записывайте в файл целую структуру, а не отдельные поля.
0
09.01.2014, 11:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 11:29
Привет! Вот еще темы с ответами:

Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы - C++
В одномерном массиве, состоящем из n вещественных элементов, – вывести на печать элементы массива, значения которых не принадлежат...

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый - C++
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый&quot; ...

Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4) - C++
Здравствуйте! Помогите написать парочку программ... 3. Даны массивы A(0) и B(4). Сформировать и вывести на экран новый массив,...

Как "подкрасить" некоторые элементы массива на выводе во время выполнения программы - C++
как &quot;подкрасить&quot; некоторые элементы массива на выводе во время выполнения программы в общем, необходимо, если такое возможно, чтобы,...


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

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

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