主题:[原创]字符和数值之间的转换
mltx
[专家分:20880] 发布于 2005-04-13 01:43:00
最简单的方法是用内部文件,即用字符变量作为文件。
下面程序段读取系统时间,存入字符变量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个回复)
沙发
yfwjc [专家分:150] 发布于 2005-04-13 08:07:00
谢谢mltx先生的耐心指导!!!!这个转化方法好啊!!
我在程序中用的是system_clock,这个提取的也是系统时间吗?
板凳
yfwjc [专家分:150] 发布于 2005-04-13 08:08:00
我看了你的另一篇http://www.programfan.com/club/showbbs.asp?id=64521
3 楼
mltx [专家分:20880] 发布于 2005-04-13 23:26:00
system_clock
是系统启动后运行的时间,time是生活中的时间。格式也不一样,是1/100或1/1000秒。生活时间是24小时计的。
4 楼
asymptotic [专家分:16630] 发布于 2005-09-02 14:39:00
这个就是 Fortran 中的 Internal Files。
5 楼
sphinix [专家分:0] 发布于 2005-11-29 22:20:00
请问mltx老师,write(now,"(2I1,1H:,I2,1H:,2I1)") 0,1,35,0,5 中的1H:是什么意思呢??
6 楼
mltx [专家分:20880] 发布于 2005-11-30 01:11:00
1H: = 写一个字符“:”
7 楼
fengfengabc001 [专家分:0] 发布于 2006-02-25 22:08:00
请问mltx老师
如果我有一个浮点数34.3400要转化为字符串“34.3400”,应该怎么转化,我按照您上面的方法怎么不行啊?
8 楼
mltx [专家分:20880] 发布于 2006-02-26 23:50:00
character(len=8) :: string
write(string,'(f7.4)') 34.34
write(*,*) string
end
9 楼
dawson [专家分:0] 发布于 2006-03-14 20:44:00
增长见识啊,谢谢
10 楼
softwind [专家分:0] 发布于 2006-04-09 11:15:00
谢谢,讲的不错!
我来回复