![]() |
Чтение из бинарного файла формата 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 в чем ошибка? помогите разобраться... |
дело в том, что при запуске из-под VS рабочим каталогом считается тот, где лежат файлы .cpp, а не тот где лежит exe, переложите файл H200.grd
|
Цитата:
|
спасибо всем большое! все заработало))))
|
Время: 03:56. |
Время: 03:56.
© OSzone.net 2001-