是否可以将double类型数组的类型(或副本)更改为char?
我的目标是将准确的数据与字符串混合,然后写入.txt文件。
根据您的提示,我会找到以下代码:
Program logArray
Implicit None
Integer, Parameter :: wp = Selected_real_kind( 12, 70 )
Real( wp ), Dimension( 1:5 ) :: vals
Character( Len = 40 ), Dimension( 1:5 ) :: stuff
character (40) :: fileName
Integer :: i,stat
Call Random_number( vals )
write(*,*) 'Printing Values from Real array'
do i = 1, 5
write(*,*) 'vals', i, vals(i)
end do
Write( stuff, '( "Value ", i1, " is ", f20.16 )' ) &
( i, vals( i ), i = 1, Size( vals ) )
fileName='log.txt'
open(2, file=fileName, status='replace', iostat=stat)
if (stat /= 0) then
write(*,*) fileName, ' The file cannot be opened !'
go to 20
end if
!Write( *, '( 99999( a, :, / ) )' ) stuff
Write( 2, '( 99999( a, :, / ) )' ) stuff
close(2)
20 write(*,*) 'File Closed'
End Program logArray
但是,如果我想在log.txt上写一些像
这样的话,我仍然没有得到它“-----价值标题1 ---------”
值1为0.9975595900926172
值2为0.5668247076112733
“-----价值3意味着爱-------”
值3为0.9659153754961249
值4为0.7479276854714322
值5是0.3673908973747557
我是Fortran的新手。我曾经写过带有循环的文件,你的“神奇”指令以不同的方式处理事情,我不知道如何操纵主要的帮助。
非常感谢您的帮助
答案 0 :(得分:4)
不太清楚你的意思,但你可能需要的是一个内部文件 - 这就是你在Fortran中将数字数据转换成字符形式的方式。这是一个例子:
[luser@cromer stackoverflow]$ cat char.f90
Program char
Implicit None
Integer, Parameter :: wp = Selected_real_kind( 12, 70 )
Real( wp ), Dimension( 1:5 ) :: vals
Character( Len = 40 ), Dimension( 1:5 ) :: stuff
Integer :: i
Call Random_number( vals )
Write( stuff, '( "Value ", i1, " is ", f20.16 )' ) &
( i, vals( i ), i = 1, Size( vals ) )
Write( *, '( 99999( a, :, / ) )' ) stuff
End Program char
[luser@cromer stackoverflow]$ nagfor -C=all -C=undefined char.f90
NAG Fortran Compiler Release 5.3.1 pre-release(904)
[NAG Fortran Compiler normal termination]
[luser@cromer stackoverflow]$ ./a.out
Value 1 is 0.5247509555250293
Value 2 is 0.2338414404620047
Value 3 is 0.8165253430643411
Value 4 is 0.2788076219798084
Value 5 is 0.9609032005446272
该行
Write( stuff, '( "Value ", i1, " is ", f20.16 )' ) &
( i, vals( i ), i = 1, Size( vals ) )
是神奇的 - 它根据给定的格式写出val,但不是写入文件而是写入字符数组的东西,数组的每个元素充当记录我的“文件”< / p>
我希望这是有道理的。更具体地说,我们需要更多细节。