Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[6876] binary read
하루 [peach8431] 2663 읽음    2014-04-11 20:45

FFT source code에 접목할 trace 배열을 읽어들이는 작업을 하고 있습니다.

fortran에서 생성된 400 X 2000 binary 파일을 C++에서 double형 배열에 입력하고자 합니다.

ascii파일은 쉽게 수행했는데, binary는 구글링해서 예시들을 봐도 어떻게 적용해야 될지 막막하네요...;;

fortran에서 binary 파일 작성 시의 파일 open command는

open(unit=1,file='rec.bin', form='unformatted', access='direct, recl=4*nt) 입니다.

size를 nt*nx*sizeof(double) 식으로 진행해서 buffer에 저장한 이후 차례로 읽어들이려 했는데

잘 안되네요;;

대부분의 예시들은 char이 많던데...

double 형태의 배열에 바로 읽을 수 있는 방법이 어떤게 있는지 부탁드립니다.


=====================================================================
★ ASCII의 경우

double **data;

/* Allocates array */
data=(double**)malloc(nx*sizeof(double*));
for (i=0;i<nx;i++) data[i]=(double*)malloc(nt*sizeof(double));

/* File open */
std::ifstream fin("rec.ascii", std::ios::in);
for (i=0;i<nx;i++){
    for (j=0;j<nt;j++) fin >> data[i][j];
}   
fin.close();

=====================================================================
★ Binary의 경우

double **data;

nx=400;
nt=2000;

/* Allocates array */
data=(double**)malloc(nx*sizeof(double*));
for (i=0;i<nx;i++) data[i]=(double*)malloc(nt*sizeof(double));

/* File open */
std::fstream fin("rec.bin", std::ios::in | std::ios_base::binary);
fin.read( (char*)&in_array, sizeof(double) );
fin.close();



+ -

관련 글 리스트
6876 binary read 하루 2663 2014/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.