Fortran Coder

查看: 19312|回复: 10
打印 上一主题 下一主题

[输入输出] 關於字符串和数字的转换問題

[复制链接]

714

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
616 元
贡献
315 点

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

楼主
发表于 2014-10-16 11:22:44 | 显示全部楼层
确定一下 zhd_mm 应该是 real 类型,还是 character 类型?

你定义为 real 类型

但 read (zhd_mm(1:1),"(a1)") first 这种写法要求它是 character 类型

714

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
616 元
贡献
315 点

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

沙发
发表于 2014-10-16 12:17:21 | 显示全部楼层
如果没有数值,是 **** 的话,那么 stat4 就不会是 0,就会 exit 了。

714

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
616 元
贡献
315 点

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

板凳
发表于 2014-10-16 17:56:51 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
character( len = 30 ) c_zhd_mm !// c_zhd_mm 定义为字符型
do while (stat4==0)
  read (44,*,iostat=stat4) time_all_zhd,c_zhd_mm !// 通常 * 就足够 read 了
  if (stat4/=0) exit         
  if (time_all_ztd==time_all_zhd) then
    !read (zhd_mm(1:1),"(a1)") first !//这句去掉
    if( c_zhd_mm(1:1) /= "*") then
      read( c_zhd_mm , * ) zhd_mm !// 如果有数值,再从 c_zhd_mm 中读取 zhd_mm
      ztd_mm = ztd_m*1000D0
      zwd_mm = ztd_mm - zhd_mm

714

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
616 元
贡献
315 点

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

地板
发表于 2014-10-17 08:12:25 | 显示全部楼层
从 real 转换成 character 用 write 既可

write( character , * ) real

714

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
616 元
贡献
315 点

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

5#
发表于 2014-10-17 12:27:34 | 显示全部楼层
read 只能把 character 转换为 real(或 integer 或 complex)
write 只能把 real(或 integer 或 complex)转换成 character

你要做什么转换,就用什么语句。不要强求 read 非要倒过来转换。

喝水用杯子,钉钉子用榔头,你非要问能不能用榔头来喝水,那只能说不行。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-21 14:19

Powered by Tencent X3.4

© 2013-2024 Tencent

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