Violetta_
19-05-2012, 17:52
Здравствуйте, в моей программе мне нужно считать данные из 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
в чем ошибка? помогите разобраться...
#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
в чем ошибка? помогите разобраться...