FORTRAN中通过键盘输入文件名,来打开文件,这样为什么是错的

PROGRAMEX030405CHARACTER*20NAMEWRITE(*,*)'文件名'READ*,NAMEOPEN(8,FILE='NAME.txt')READ(8... PROGRAM EX030405
CHARACTER*20 NAME
WRITE(*,*)'文件名'
READ*,NAME
OPEN(8,FILE='NAME.txt')
READ(8,100) T,CHAT
N=(T/CHAT)+1
WRITE(*,*) N,NAME
100 FORMAT(F8.3/F8.3)
CLOSE(8)

END

新手求救
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏20(财富值+成长值)
枫吹草笛
推荐于2016-11-27 · TA获得超过1978个赞
知道小有建树答主
回答量:281
采纳率:75%
帮助的人:162万
展开全部
PROGRAM EX030405
CHARACTER*20 NAME
WRITE(*,*)'文件名'
READ*,NAME
OPEN(8,FILE=TRIM(NAME) // '.txt')
READ(8,100) T,CHAT
N=(T/CHAT)+1
WRITE(*,*) N,NAME
100 FORMAT(F8.3/F8.3)
CLOSE(8)
END

假设你的文件名是“百度.txt”,在执行READ*,NAME这句的时候你把“百度”赋值给NAME,在执行OPEN(8,FILE='NAME.txt')的时候,你想象中的是打开"百度.txt",而实际上由于你用引号将NAME给括起来了,所以系统会认为你想要打开的是一个"NAME.txt"的文件,如果文件夹下没有这个文件,系统将会自动生成一个。在执行READ(8,100) T,CHAT这句的时候,系统发现NAME.txt格式不对或者已经到达文件尾,就会报错。

要记住被单引号或者双引号括起来的字符不能再被当作变量名或者函数名,系统只会认为这是一段字符串。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式