我正在尝试创建文件的完整路径,通过Read
语句输入父文件夹:
PROGRAM fileTest
IMPLICIT NONE
Character(LEN=20) :: dirpath,fullpath
Write(6,*) 'Enter dir path'
Read(*,'(a)') dirpath
dirpath=TRIM(dirpath)
fullpath=dirpath//'/file.abc'
print*,fullpath
END PROGRAM fileTest
使用gfortran,代码编译,但输入/home/chris
会导致最终的打印语句仍然给出
/home/chris /file.abc
(注意空白的9个字符)。
如何摆脱虚假的空白?!
答案 0 :(得分:3)
这是因为dirpath
仍然是character(len=20)
变量,所以在dirpath=TRIM(dirpath)
之后再次用空格填充其内容。你必须像这样修剪:
fullpath = trim(dirpath)//'/file.abc'
修改强>
作为可分配字符串的演示(请参阅我的注释),如果您的编译器支持此功能,您应该能够更加令人满意地处理任意字符串长度:
character(:), allocatable :: fullpath
character(len=some_length) :: buffer
write(6,*) 'Enter dir path'
read(*,'(a)') buffer
fullpath = trim(buffer) // '/file.abc'
应自动分配字符串fullpath
以适应右侧的确切长度。