主题:[原创]字符和数值之间的转换
			 mltx
				 [专家分:20880]  发布于 2005-04-13 01:43:00
 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
yfwjc [专家分:150]  发布于 2005-04-13 08:07:00				
				谢谢mltx先生的耐心指导!!!!这个转化方法好啊!!
我在程序中用的是system_clock,这个提取的也是系统时间吗?
							 
						
				板凳
				
					 yfwjc [专家分:150]  发布于 2005-04-13 08:08:00
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
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
asymptotic [专家分:16630]  发布于 2005-09-02 14:39:00				
				这个就是 Fortran 中的 Internal Files。
							 
						
				5 楼
				
					 sphinix [专家分:0]  发布于 2005-11-29 22:20:00
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
mltx [专家分:20880]  发布于 2005-11-30 01:11:00				
				1H: = 写一个字符“:”
							 
						
				7 楼
				
					 fengfengabc001 [专家分:0]  发布于 2006-02-25 22:08:00
fengfengabc001 [专家分:0]  发布于 2006-02-25 22:08:00				
				
请问mltx老师
如果我有一个浮点数34.3400要转化为字符串“34.3400”,应该怎么转化,我按照您上面的方法怎么不行啊?
							 
						
				8 楼
				
					 mltx [专家分:20880]  发布于 2006-02-26 23:50:00
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
dawson [专家分:0]  发布于 2006-03-14 20:44:00				
				增长见识啊,谢谢
							 
						
				10 楼
				
					 softwind [专家分:0]  发布于 2006-04-09 11:15:00
softwind [专家分:0]  发布于 2006-04-09 11:15:00				
				
谢谢,讲的不错!
							 
									
			
我来回复