爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5263|回复: 8

[求助] 第二个print为什么print不出来

[复制链接]

新浪微博达人勋

发表于 2012-4-22 12:48:51 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
帮忙看一下这个程序中的第二个print为什么print不出来啊?而且编译的时候没有错误的
  1. implicit none
  2. integer i,j,n,m,k
  3. parameter(n=721,m=10)
  4. character*3 swe(n,n)
  5. character*20 filename(m)
  6. open(3,file='e:\filename.txt')
  7. do i=1,m
  8. read(3,*)filename(i)
  9. print*,filename(i)
  10. enddo
  11. close(3)

  12. do k=1,m
  13. open(1,file='E:\data\NL'//filename(k)//'.v03.SI',form='binary')
  14. do i=1,n
  15. do j=1,n
  16. read(1,end=10)swe(i,j)
  17. print*,ichar(swe(i,j))
  18. enddo
  19. enddo
  20. 10 close(1)
  21. !print*,i-1,j-1
  22. open(2,file='E:\'//filename(k)//'.txt')
  23. do i=1,n
  24. write(2,*)(ichar(swe(i,j)),j=1,n)
  25. enddo
  26. close(2)
  27. print*,i-1,j-1
  28. enddo
  29. end


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-4-22 14:04:17 | 显示全部楼层
首先,你得先确定你的数组swe(i,j)正确读进去了,其次,根据兰溪的说法,1和6是默认的屏幕代号,read(1,end=10)swe(i,j)这句可能相当于屏幕读入,当然这与编译器有关,不一定每个编译器都这样认为。所以人家兰溪建议你换一下文件号。@兰溪之水
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-4-22 15:36:06 | 显示全部楼层
去掉 ichar这个函数看看能出来么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-4-22 16:40:18 | 显示全部楼层
我想问一下楼主的程序能够运行么?如果仅仅错在不能print是无所谓的,恐怕open(1,````)也打不开吧?
经验判断有可能是你的filename文件名比较长,导致文件名里面包含空格,这样程序在运行的过程中自动生成一个空文件,类似“E:\data\NL    filename.v03.SI”的文件,并且屏幕提示输入输出错误,I/O%¥%#¥@

解决方案是在filename(k)外面加一层trim(filename(k)),表示去掉空格

祝你好运
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-22 20:11:09 | 显示全部楼层

好滴~灰常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-22 20:23:33 | 显示全部楼层
mofangbao 发表于 2012-4-22 15:36
去掉 ichar这个函数看看能出来么

我有尝试过去掉这个函数,运行结果是生成的txt中只有几个问号,其余全是空白
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-22 20:34:48 | 显示全部楼层
言深深 发表于 2012-4-22 16:40
我想问一下楼主的程序能够运行么?如果仅仅错在不能print是无所谓的,恐怕open(1,````)也打不开吧?
经验判 ...

~成功解决了!灰常灰常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-4-22 20:45:26 | 显示全部楼层
水草 发表于 2012-4-22 20:34
~成功解决了!灰常灰常感谢!

其实你可以一次性将所有的文件名都写在第一个filename的txt文件里面的,注意这是后的character定义的字符数组名需要长一些,这样就避免下面再写文件名了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-4-23 12:42:41 | 显示全部楼层
言深深 发表于 2012-4-22 20:45
其实你可以一次性将所有的文件名都写在第一个filename的txt文件里面的,注意这是后的character定 ...

嗯~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表