这里有麻烦......我正在动态构建(而不是更改)包含数字(数字)的字符串(比如文件名为out01.txt,out02.txt等。)
我的程序运行正常(我使用最后更新的值字符串来命名文件并编辑该文件)...但是在“ls”命令的同一目录中,我可以看到该文件已创建并通过文件浏览器我可以访问它但是从命令行使用vim,gedit我无法打开它同一个新文件正在打开...而且我无法从命令行删除该文件(rm out010.txt' 没有这样的文件或目录)这里是代码,我可能无法解释我的问题,但代码将说明一切...
program strtest
implicit none
character(len=1024)::filen,format_str
integer::i
format_str="(a5,i0.3,'.txt')"
do i=1,10
write(filen,format_str)'out',i
end do
write(*,*)trim(filen)
open(23,file=trim(filen))
write(23,*)"what a mess!"
close(23)
stop
end program strtest
注意:即使不在文件打开语句中使用trim()函数,我也遇到同样的问题
请解释我的情况!!
问候......
答案 0 :(得分:7)
你的文件名前面有两个空格,所以如果你放rm " out01.txt"
(2个空格,out01.txt),你就可以删除它们。这是a5,它正在抛弃格式字符串。
答案 1 :(得分:7)
正如@jonsca已经指出的那样,问题在于额外的空白。摆脱它的最简单方法是使用adjustl
,如下所示:
open(23,file=trim(adjustl(filen)))