IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Язык - С++.Проблема с записью в файл массива.
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Ввожу вектор,записываю в файл(записываю как в текстовый(wt)),открываю - а там бред..Не понимаю,почему=(
ВОт код..


Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Вот код целиком(извиняюсь за громосткость) :

#include <iostream.h>
#include <stdio.h>
#include <conio.h>

void filesave (float *mptr, int msize);
void work (float *mptr, int msize);
float fileread (int msize);
float inputkeyboard(int msize);
void inputfile (int msize);

void main()
{
cout << "Viberite pynkt menu :\n";
cout << "1 - Vvod s klaviaturi\n";
cout << "2 - Chtenie iz faila\n";
cout << "3 - Vihod\n";
int ch;
cin >> ch;
switch (ch)
{
case 1 :
{
cout << "vvedite razmernost posledovatelnosti:\n";
int msize;
cin >> msize;
inputkeyboard(msize);
}
break;
case 2 :
{
int msize;
float *buffer;
buffer=fileread(msize);//ошибка тут
work (buffer,msize);
}
break;
}
cin.get();
cin.get();
}

void work (float *mptr,int msize)
{
cout << "Posledovatelnost :\n";
for (int i=0;i<msize;i++)
cout << mptr[i] << " ";
cout << "\n";
int j=0;
float *min = new float;
*min=mptr[0];
for (i=0;i<msize;i++)
{
if (*min>mptr[i])
{
*min=mptr[i];
j=i;
}
else;
}
cout << "\nMinimalnoe chislo v posledovatelnosti : " << *min <<" \n";
float *srar = new float;
*srar=0;
for (i=0;i<msize;i++)
{
*srar=*srar+mptr[i];
}
*srar=*srar/ msize;
cout << "\nSrednearifmeticheskoe chislo v posledovatelnosti : " << *srar << "\n";
mptr[j]=*srar;
cout << "Posledovatelnost' posle zameni : \n";
for (i=0;i<msize;i++)
cout << mptr[i] << " ";
cout << "\n";
delete min;
delete srar;
}


float inputkeyboard (int msize)
{
cout << "Vvedite chisla v posledovatelnosti : \n";
float *maptr = new float [msize];
for (int i=0;i<msize;i++)
{
cin >> maptr[i];
cout << "\n";
}
cout << "\n";
work(maptr,msize);
cout << "\n";
cout << "Sohranit v file?(1 - Yes,2 - no)\n";
int cho;
cin >> cho;
if (cho==1)
filesave(maptr,msize);
else
;
delete [] maptr;
return 0;
}

void filesave(float *mptr,int msize)
{
char *path= new char[67];
int result;
FILE *file;
do
{
result=1;
cout << "\nVvedite pyt\n";
cin >> path;
if ((file=fopen(path,"wb"))==NULL)
{
cout <<"\nError!\n";
result=0;
}
}
while (result==0);
fwrite(mptr,msize*sizeof(float),1,file);
delete path;
fclose(file);
}


float fileread(int msize)
{
FILE *file;
char *path= new char[67];
int result;
do
{
result=1;
cout << "\nVvedite pyt\n";
cin >> path;
if ((file=fopen(path,"rb"))==NULL)
{
cout <<"\nError!\n";
result=0;
}
}while (result==0);
fseek(file, 0, SEEK_END);
msize = ftell(file) / sizeof(float);
rewind(file);
float *bufm=new float[msize];
fread (bufm,msize*sizeof(float),1,file);
fclose(file);
cout <<"\n";
delete path;
return bufm;// ошибка тут
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Andrewshkovskii   Язык - С++.Проблема с записью в файл массива.   25.09.2007 21:02
volvo   записывает в файл машинное представление массива f…   25.09.2007 21:15
Andrewshkovskii   тогда,я так понимаю надо использовать массив из ве…   25.09.2007 21:23
volvo   Ты объясни чего ты хочешь? Быстро записать массив …   25.09.2007 21:59
Andrewshkovskii   1ое.   25.09.2007 22:08
volvo   Тогда да, открывай файл как бинарный: if((f=fopen…   25.09.2007 22:21
Andrewshkovskii   ...Опять..проблема)   25.09.2007 22:38
volvo   Во-первых, кто тебе сказал, что из файла, открытог…   25.09.2007 22:50
Andrewshkovskii   Спасибо,все исправил,разобрался - работает:)Боооол…   25.09.2007 23:47
volvo   Можешь вернуть так: float *fileread(int msize) { …   26.09.2007 0:13
Andrewshkovskii   RE: Язык - С++.Проблема с записью в файл массива.   26.09.2007 1:07
volvo   Не имею ни малейшего понятия, почему... Я привел т…   26.09.2007 1:27
Andrewshkovskii   Компилятор старенький(3.1) ,щас пойду дальше разби…   26.09.2007 1:30
volvo   Что-то все меньше понимаю я логику твоего компилят…   26.09.2007 2:09
Andrewshkovskii   Вот код целиком(извиняюсь за громосткость) : #in…   26.09.2007 2:18
volvo   Ну, а теперь посмотри, что возвращает fileread у т…   26.09.2007 2:37
Andrewshkovskii   исправил,но плохо читает.Т.е циклиться или виснет.…   26.09.2007 3:15
volvo   Нет... Проблемы с тем, что при описании float *fil…   26.09.2007 5:23


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 23:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name