回 帖 发 新 帖 刷新版面

主题:[原创]字符和数值之间的转换

最简单的方法是用内部文件,即用字符变量作为文件。

下面程序段读取系统时间,存入字符变量now,再将now的时分秒转换为整数值读出。

program TimeNow
   character*8 :: now
   integer     :: hh,mm,ss

   call time (now)     ! 读系统时间
   write(*,*) now      ! 写出时间字符串

   ! 用字符变量now作为内部文件,从中将时、分、秒作为整数读出
   read(now,"(I2,1x,I2,1x,I2)") hh,mm,ss  ! 字符转换为
   write(*,*) hh,mm,ss ! 写出时、分、秒的整数值

   stop
end program TimeNow

屏幕输出例:
01:35:05
1 35 5


数值转换为字符是类似的,用写语句即可:
   write(now,"(2I1,1H:,I2,1H:,2I1)") 0,1,35,0,5

回复列表 (共39个回复)

11 楼

高手就是高手啊"""

12 楼

老师????????为什么大家都叫老师呢,mltx哥哥/叔叔/伯伯是老师么??你们怎么知道?还是说他很有经验所以才尊称老师的呢???不明白!!!

13 楼


3人行,则必皆为我师.

呵呵~~~

14 楼

[quote]老师????????为什么大家都叫老师呢,mltx哥哥/叔叔/伯伯是老师么??你们怎么知道?还是说他很有经验所以才尊称老师的呢???不明白!!!
[/quote]

有值得自己学习的地方的人,都可以称为老师。
mltx给我们很多很好的帮助,不管他是不是老师,都是可以称老师。

15 楼

怎样将连着一堆字母转换成相应的数字?

16 楼

Fortran中的内部文件功能确实很强啊

17 楼

应该有点错误,可能是笔误
character(len=8) :: string
read(string,'(f7.4)') 34.34
write(*,*) string
end

18 楼

17楼你是说8楼的代码写错了吗?
赫赫,你运行过8楼的代码和你自己的代码吗?
8楼是没有错滴!



[quote]应该有点错误,可能是笔误
character(len=8) :: string
read(string,'(f7.4)') 34.34
write(*,*) string
end
[/quote]

19 楼

内部文件暂时存储是不错

20 楼

受益良多,谢谢mltx老师

我来回复

您尚未登录,请登录后再回复。点此登录或注册