Fortran内部读取:字符转整数失败问题求助
Fortran字符转对应整数值的正确实现
你之前的代码报错是因为用了(i1)格式读取字符:这个格式是用来解析数字字符(比如'0'-'9')为整数的,而'U'不是数字字符,所以会触发运行时错误。
要获取字符对应的ASCII整数值,直接用Fortran标准内置函数ichar()即可,这是从Fortran 77就支持的标准方法,完全兼容旧代码迁移场景:
program test integer :: LTS CHARACTER (len=1) :: UBF UBF = "U" LTS = ichar(UBF) ! 获取字符对应的ASCII整数值 print *, LTS ! 输出85(对应'U'的ASCII码) stop END
编译运行这段代码,就能得到你期望的结果。如果需要反向转换(整数转字符),可以用char()函数。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

