Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Чтение из бинарного файла формата GRD (http://forum.oszone.net/showthread.php?t=235000)

Violetta_ 19-05-2012 17:52 1918819

Чтение из бинарного файла формата GRD
 
Здравствуйте, в моей программе мне нужно считать данные из GRD файла. Казалось бы все очень просто, данные в GRD файле расположены так: СССС, N_x, N_y, X_min, X_max, Y_min, Y_max, Z_min, Z_max, H[N_x][N_y]; Вот кусок кода. который должен считать эти данные с этого файла:

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

using namespace std;

#define N 944

int main(){

//ВЫДЕЛЕНИЕ ПАМЯТИ ПОД ДИНАМИЧЕСКИй МАССИВ
double **H;
H = (double**)calloc(sizeof(double*),N);
for(i = 0; i<N; i++){ H[i] = (double*)calloc(sizeof(double),N); }

//считываение с jrd файла
int n = 4;
char *C = (char*)calloc(sizeof(char),n);
short int N_x, N_y;
double X_min, X_max, Y_min, Y_max, Z_min, Z_max;

FILE *fp;
fp=fopen("H200.grd", "rb");

if((fp=fopen("H200.grd", "rb")) == NULL){
cout<<"Не удается открыть файл\n";
system("pause");
return 1;
}

fread(C, sizeof(char), 4, fp);
for(i=0; i<4; i++) cout<<C[i]<<" , ";
cout<<endl;

fread(&N_x, sizeof(short int), 1, fp);
cout << N_x << " , ";

fread(&N_y, sizeof(short int), 1, fp);
cout << N_y << endl;

fread(&X_min, sizeof(double), 1, fp);
cout <<"X_min = "<< X_min << endl;

fread(&X_max, sizeof(double), 1, fp);
cout <<"X_max = "<< X_max << endl;

fread(&Y_min, sizeof(double), 1, fp);
cout <<"Y_min = "<< Y_min << endl;

fread(&Y_max, sizeof(double), 1, fp);
cout <<"Y_max = "<< Y_max << endl;

fread(&Z_min, sizeof(double), 1, fp);
cout <<"Z_min = "<< Z_min << endl;

fread(&Z_max, sizeof(double), 1, fp);
cout <<"Z_max = "<< Z_max << endl;

fclose(fp);



но проблема в том, что он даже не может открыть этот файл, не может его найти, даже когда я к нему полный путь указываю, ошибка выскакивает на этапе отладки программы если не писать условие"if((fp=fopen("H200.grd", "rb")) == NULL){
cout<<"Не удается открыть файл\n";
system("pause");
return 1;
}" то получается ошибка "Библиотека времени выполнения Microsoft Visual Studio C обнаружила неустранимую ошибку в Курсовая_работа.exe." файл лежит в папке с самой программой .exe
в чем ошибка? помогите разобраться...

ferget 20-05-2012 01:40 1919081

дело в том, что при запуске из-под VS рабочим каталогом считается тот, где лежат файлы .cpp, а не тот где лежит exe, переложите файл H200.grd

Delirium 20-05-2012 08:43 1919133

Цитата:

Цитата ferget
переложите файл H200.grd »

Или укажи на время тестирования полный путь до файла.

Violetta_ 20-05-2012 19:45 1919382

спасибо всем большое! все заработало))))


Время: 03:56.

Время: 03:56.
© OSzone.net 2001-