Fortran Coder

write(str1,*) str2 将字符串写进字符串

查看数: 7157 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-9-15 17:23

正文摘要:

本帖最后由 愤怒的三炮 于 2020-9-15 17:24 编辑 [Fortran] 纯文本查看 复制代码character*20:: str= '  fortran    ' write(str,*) adjustl(str) print*, str end 这样运行时会出错(见下图 ...

回复

愤怒的三炮 发表于 2020-9-16 09:46:35
胡文刚 发表于 2020-9-15 21:26
第一
write(str,*) adjustl(str)
如果你把一个变量写入自身,可能会有问题。虽然语法没有明说,但不同编译 ...

感谢您的回复!
根据您的建议用Simply Fortran试了一下,发现问题就在于表控格式,需要控制格式写入。(adjustl函数需要控制格式,但是trim就可以是表控格式)

[Fortran] 纯文本查看 复制代码
character*20:: str= '  fortran    '
write(str,*) adjustl(str)
print*, str
end

用write将字符串写进字符串的用法我也基本没用过,因为是修改代码而偶然出现的,好奇报错的原因。
如您所言,还是直接赋值最方便。
胡文刚 发表于 2020-9-15 21:26:36
第一
write(str,*) adjustl(str)
如果你把一个变量写入自身,可能会有问题。虽然语法没有明说,但不同编译器实现可能有不同的问题。
建议你换一个变量写入,比如
write(str2,*) adjustl(str)
第二
对于表控格式来说,写入可能会超出str2的定义长度。
建议用a格式符
write(str2,'(a20)') adjustl(str)
第三
直接赋值,效率更高,何必用write?

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-6 03:25

Powered by Tencent X3.4

© 2013-2024 Tencent

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