回 帖 发 新 帖 刷新版面

主题:关于vc和Fortran中字符转换成整形的问题

open(10,file='E:\tbb_data\FY2C_TBB_IR1_OTG_20080625_0900.AWX',STATUS='OLD', form='formatted',access='direct',recl=1201)
do i=1,1201  
 read(10,rec=i+2) ch  
 do j=1,1201  
  tbb(j,i)=ichar(ch(j))+100-273.15   
 enddo  
enddo
我用以上Fortran程序段读取数据,把字符转换成整形。用以下vc程序读取数据,把字符转换成整形。
两个程序读出来的数据差距挺大的,不知道哪里有问题,请达人指教!!
万分感谢!
FILE *fp;
if((fp=fopen(“E:\tbb_data\FY2C_TBB_IR1_OTG_20080625_0900.AWX”,"rb"))==NULL)
{
printf("can not open file\n");
exit(0);
}
for( i=0;i<1201;i++)
{
fseek(fp,(i+2)*1201*sizeof(char),0);
fread(c_data,1201*sizeof(char),1,fp);
for(int j=0;j<1201;j++)
{

ref_true[i][j] = short(c_data[j])+100-273.15;  

}
}

回复列表 (共2个回复)

沙发

文本文件最好不要用直接读取,除非你确定他们是严格对齐的。

在 recl 设置上要小心,注意行尾的换行符和回车符。

VC 不懂。 tbb(j,i)=ichar(ch(j))+100-273.15  这个看不懂

板凳

if((fp=fopen(“E:\tbb_data\FY2C_TBB_IR1_OTG_20080625_0900.AWX”,"rb"))==NULL)
这儿译错了。。。
if((fp=fopen("E:\\tbb_data\\FY2C_TBB_IR1_OTG_20080625_0900.AWX","rb"))==NULL)
需要用半角引号及需要使用双反斜杠:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册