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

Одна программа записывает данные в файл, а другая их считывает и выводит на экран - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблонный класс очереди. Выводит сначала все индексы, потом все элементы http://www.cyberforum.ru/cpp-beginners/thread1065989.html
#include <iostream> #include <conio.h> using namespace std; const int SIZE=100; template<class X> class queue{ X q; int sloc, rloc;
C++ Строка не передаётся в функцию #include <iostream> #include <stdio.h> #include <string.h> using namespace std; str_while(char* str) { int i=0; while(str) http://www.cyberforum.ru/cpp-beginners/thread1065984.html
Магия со статическими массивами C++
Предисловие: на форуме подняли топик http://www.cyberforum.ru/cpp-beginners/thread1065365.html , в голове сразу мелькнула мысль написать шаблонную функцию, которой не надо было-бы передавать...
C++ Задача с использованием структуры и указателя
Структура содержит поля: имя, фамилия , возраст. Надо заполнить с клавиатуры и передать через указатель в функцию , в к-ой вывести на экран Со структурой мне все понятно, но как к ней сделать...
C++ Непонятен алгоритм: как записывать значения в бинарном файле в обратном порядке? http://www.cyberforum.ru/cpp-beginners/thread1065967.html
Нужно написать программу, которая будет, записывать значения в бинарном файле, в обратном порядке. Кажется легко, НО!!! Нельзя использовать массивы, нужно как-то через fseek И никакой копии...
C++ Определить номер столбца массива, в котором расположен минимальный элемент четвертой строки массива Доброго времени суток, помогите пожалуйста решить задачи по C++ 3)Дан двумерный массив. Определить: a) номер столбца, в котором расположен минимальный элемент четвертой строки массива.Если... подробнее

Показать сообщение отдельно
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89

Одна программа записывает данные в файл, а другая их считывает и выводит на экран - C++

08.01.2014, 19:59. Просмотров 394. Ответов 8
Метки (Все метки)

Задача состоит в том чтоб одна программа записала данные в файл а другая их считала и вывела на экран как полагается, запись и считывание через бинарный режим должны осуществляться. Имеется класс object и у него два класса наследника triangle и uravn.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main(int argc,char* argv[])
{FILE* F;
F=fopen(argv[1],"wb+");
char p;
cout<<"vvedite kol-vo elementov";
int N;
cin>>N;
object** A;
A= new object* [N];
fwrite(&N,sizeof(int),1,F);
for(int i=0;i<N;i++)
    {cout<<"vvedite tip objekta t-triangle, u-uravneniya \n";
    cin>>p;
    if(p=='t') *(A+i)=new triangle;
    if(p=='u') *(A+i)=new uravn;
    cout<<"vvedite objekt "<<i+1<<"\n";
    A[i]->input();
    if(p=='t') {fwrite(&p,sizeof(char),1,F); fwrite(A[i],sizeof(triangle),1,F);};
    if(p=='u') {fwrite(&p,sizeof(char),1,F); fwrite(A[i],sizeof(uravn),1,F);};
    };
fclose(F);
return 0;
}
это программа которая создает бинарный файл
сначала записывает кол-во элементов а потом по одному тип и сам элемент.
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
int main(int argc,char* argv[])
{FILE* F;
object** A;
if(argc==2)
    {
    F=fopen(argv[1],"rb");
    int N;
    char p;
    fread(&N,sizeof(int),1,F);
    cout<<N;
    A=new object*[N];
    for(int i=0;i<N;i++)
        {fread(&p,sizeof(char),1,F);
        if(p=='t') A[i]=new triangle;
        if(p=='u') A[i]=new uravn;
        if(p=='t') {fread(&A[i],sizeof(triangle),1,F); cout<<"t";};
        if(p=='u') {fread(&A[i],sizeof(uravn),1,F); cout<<"u";};
    };                              //vvod */
    for(int i=0;i<N;i++)
        {cout<<"objekt "<<i+1<<":\n";
    cout<<A[i]->output();
    }
return 0;
};
я так понимаю что неправильно считывается/записывается тип класса наследника, ибо до cout<<A[i]->output(); все идет нормально, потом программа закрывается.

Добавлено через 7 минут
файл указывается через параметр, вторая программа правильно считывает количество объектов, а после начинаются непонятки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru