主题:[原创]字符和数值之间的转换
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个回复)
31 楼
谁是谁的谁 [专家分:350] 发布于 2008-07-01 07:53:00
字符串转化
好帖留名
方便寻找
32 楼
luolan [专家分:10] 发布于 2008-10-11 20:08:00
谢谢mltx大叔了,很长见识哦
33 楼
sunshinezjl [专家分:0] 发布于 2008-11-04 09:20:00
这种转换是可以实现的,我想请教一下,如果在一个计算中需要有待定系数出现 进而来求这个待定系数,那么在初始定义的时候算式中就要出现未赋值的量,可是实际中此时无法计算,会提示某某变量未赋值即采用,这是该怎么处理呢?
理想化 希望能像matlab那样定义一个字符变量参与运算,fortran中怎么处理呢?谢谢!
34 楼
wanjj [专家分:0] 发布于 2008-11-18 18:17:00
这个方法真方便!谢谢!
36 楼
wfytjdandan [专家分:50] 发布于 2009-08-22 14:45:00
请问字符串可以作为浮点数来用吗?
比如“nan”
谢谢了啊!!!
37 楼
wfytjdandan [专家分:50] 发布于 2009-08-23 12:50:00
mltx老师,请教您一个问题!
我一个.dat文件中存着一个915*1080的矩阵,里面既有数据,又有字符串。但都是占十个字符空间。我想差分成305*360的矩阵,写到另一个.dat文件中,请问如何处理字符串的,字符串是“ NaN”,数据是比如“ 3.076” “ -3.689”之类的数据。
我想读到一个数组里a(915,1080),然后在提取出b(305,360)
但是在fortran中数组元素只能是数值型的啊,不能是字符串!
该怎么处理啊!
谢谢了~~~
38 楼
zzg0316 [专家分:0] 发布于 2009-10-27 22:14:00
character(len=3) :: string
write(string,'(i3.3)') 3
write(*,*) string
end
39 楼
guang5678 [专家分:0] 发布于 2009-12-14 19:42:00
我以前一直都是写入一个文件,然后把它当成字符读出来。
呵呵,笨是笨了点。
我来回复