爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10491|回复: 12

[经验总结] 【技术讨论帖】Fortran之字符串不定长度

[复制链接]
发表于 2014-3-2 10:00:29 | 显示全部楼层 |阅读模式

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

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

x
今日在彭国伦的Fortran课本的第181页发现一个问题:

传递字符串变量的时候,也可以不特别赋值它的长度,所以出现的如下的设置

  1. character(len=*) ::string


我尝试了下,结果在VF6.6上老师报错,不知道在其他平台是否可以运行?
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2014-3-2 10:29:50 | 显示全部楼层
大约是编译器的问题吧,你试试直接用
character string
进行定义,但是不给长度,貌似是属于默认的(8位?具体我忘记了···)
密码修改失败请联系微信:mofangbao
发表于 2014-3-2 11:55:27 | 显示全部楼层
学习学习。。。。。
密码修改失败请联系微信:mofangbao
0
早起挑战累计收入
发表于 2014-3-2 12:20:33 | 显示全部楼层
去掉  len=再试试 也就是
character(*)  string
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-2 14:29:35 | 显示全部楼层

Error: This passed length character name has been used in an invalid context.

上面就是报错的结果。应该是平台版本的问题?感觉6.6的要求比较严格
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-2 14:35:17 | 显示全部楼层
言深深 发表于 2014-3-2 10:29
大约是编译器的问题吧,你试试直接用
character string
进行定义,但是不给长度,貌似是属于默认的(8位? ...

如你所说,的确不会报错,但是就和我的本意不同了,我想声明的是字符串,而不是单个的字符。
因为按照你的character string
只是声明了一个string的字符,只能存放一个字母之类的。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-2 14:36:27 | 显示全部楼层
OOOO1 发表于 2014-3-2 11:55
学习学习。。。。。

这个用法不对,请不要误解啦
密码修改失败请联系微信:mofangbao
0
早起挑战累计收入
发表于 2014-3-3 09:00:49 | 显示全部楼层
haobang008 发表于 2014-3-2 14:36
这个用法不对,请不要误解啦

这种用法我试过 是可以的
你把你的代码多贴一点出来,最好是有一个可以说明问题的小demo 也许是其他地方的问题导致的
密码修改失败请联系微信:mofangbao
0
早起挑战累计收入
发表于 2014-3-3 09:11:05 | 显示全部楼层
你对照下面的代码看下就知道了你是不是哪里写的不对了,写了一个小例子:
  1. program test
  2. character*100 chars
  3. 100 continue
  4. print*,"请输入一个长度小于100个字符的字符串:"
  5. read(*,'(a)')chars
  6. call printchars(chars)
  7. goto 100

  8. end

  9. subroutine printchars(chars)
  10. character(*) chars

  11. print*,"您输入的字符串是:",chars
  12. print*,"这个字符串的长度是(不含首尾空格):",LEN_TRIM(chars)

  13. end


我用的6.5测的,应该和6.6差别不大~
1.png




密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-3 23:23:23 | 显示全部楼层
mofangbao 发表于 2014-3-3 09:11
你对照下面的代码看下就知道了你是不是哪里写的不对了,写了一个小例子:
我用的6.5测的,应该和6.6差别不 ...

十分感谢清风前辈的指教,我运行了下,的确是是这样的。
但是这个用法应该是用在子函数中的,在主程序中则总会报错,其实话说回来,要是传递不定长度的字符串一般也是往函数之类的传递,应该也就是限制在函数中使用这种语法了吧。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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