Fortran Coder

查看: 14792|回复: 5
打印 上一主题 下一主题

[调试器] Debug显示变量与实际值不同

[复制链接]

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2015-4-15 19:54:37 | 显示全部楼层
1.Fortran的字符串是定长的,而不是变长的。没有结束符 \0
2.char(0) 在 Fortran 里被视为正常的字符。而不是空格
3. trim() 和 len_trim() 只能去除尾部的空格,并不去除尾部的 \0
4. index 也找不到 "sdfsd2     ",因为这里面有空格,而你的数据里都是 \0。
5.如果你 index "sdfsd2" 则可以找到
6.如果你 index "sdfsd2" // char(0) // char(0) 也可以找到
7.但是 index "sdfsd2    " 找不到,因为 \0 不是空格
8.调试时,你无法看到 \0 后面的内容。因为调试器是 C 语言写的,而不是 Fortran 写的。
9.输出到文件时,可以正常输出 \0 ,也可以正常输出空格(如果有空格的话)

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-4-15 19:56:39 | 显示全部楼层
楼主可以用这段代码测试来看看

[Fortran] 纯文本查看 复制代码
character(len=6) :: c
c = "ab" // char(0) // "cd" // char(0)
write(*,*) index(c,"ab")
write(*,*) index(c,"cd")
write(*,*) len_trim(c)
end
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-23 10:04

Powered by Tencent X3.4

© 2013-2024 Tencent

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