我正在尝试设计一个fortran77程序,在unix中创建17个目录,然后执行各种其他操作,但创建目录一直是最大的问题,所以我现在只想关注它。
例如:
do i=1,17
cmd="mkdir" ,i
call system(cmd)
call chdir("i")
end do
从代码部分开始,我希望命令“mkdir”在unix中创建17个独立的目录,命名为1-17,但是当我尝试编译程序时,我得到一个错误,上面写着“无效的基数说明符”,侧重于我列出的第二行代码。
另一个错误也集中在同一行代码上。 “(^)处的连接运算符必须对两个字符类型的子表达式进行操作,但(^)处的子表达式不是字符类型。
有没有办法将整数转换为字符串?
感谢所有帮助。
答案 0 :(得分:0)
要回答您的一个问题,您可以通过写入将整数转换为字符串。考虑示例代码:
program main
integer :: i
character(len=80) :: cmd
do i=1,4
write(cmd,'(a,i0.2)') 'mkdir Directory_', i
write(*,*) 'calling "', trim(cmd), '"'
call system(cmd)
enddo
end program main
给出输出
mach5% pgfortran main.f90; ./a.out
calling "mkdir Directory_01"
calling "mkdir Directory_02"
calling "mkdir Directory_03"
calling "mkdir Directory_04"
mach5% ls
total 860
-rwx------ 1 chaud106 806765 Jul 1 15:37 a.out*
drwx------ 2 chaud106 4096 Jul 1 15:37 Directory_01/
drwx------ 2 chaud106 4096 Jul 1 15:37 Directory_02/
drwx------ 2 chaud106 4096 Jul 1 15:37 Directory_03/
drwx------ 2 chaud106 4096 Jul 1 15:37 Directory_04/
-rw------- 1 chaud106 195 Jul 1 15:37 main.f90