如何使用 gfortran 中的调用系统在“<<EOF ... EOF”之间调用代码?
How can I invoke code between '<<EOF... EOF' using call system in gfortran?
我想使用“调用系统”在“<
gnuplot -persist <<EOF
set title "grafico"
plot "salida.txt"
EOF
"salida.txt"
1 1
2 2
3 3
4 4
5 5
gnuplot -persist -e "set title 'grafico'; plot 'salida.txt'"
program gnuplot
implicit none
character(len=1000) :: command
command = "gnuplot -persist <<EOF"//new_line('A')//&
"set title 'grafico'"//new_line('A')//&
"plot 'salida.txt'"//new_line('A')//&
"EOF"
! system() is a GNU extension. This is more portable:
call EXECUTE_COMMAND_LINE(command)
end program
注意字符串连接的 //
和行继续的 &
。
如果您不介意使用 GNU 扩展,请使用 -fbackslash
标志进行编译,如果您愿意,可以这样编写字符串:
command = "gnuplot -persist <<EOF\n&
&set title 'grafico'\n&
&plot 'salida.txt'\n&
&EOF"
请注意 \n
而不是 new_line('A')
。另请注意,这不是连接字符串,而是单个字符串。像以前一样有一个 &
用于行继续,但如果字符串是上一行字符串的延续,则在行的开头也有一个 &
。
我想使用“调用系统”在“< "salida.txt"gnuplot -persist <<EOF
set title "grafico"
plot "salida.txt"
EOF
1 1
2 2
3 3
4 4
5 5
gnuplot -persist -e "set title 'grafico'; plot 'salida.txt'"
program gnuplot
implicit none
character(len=1000) :: command
command = "gnuplot -persist <<EOF"//new_line('A')//&
"set title 'grafico'"//new_line('A')//&
"plot 'salida.txt'"//new_line('A')//&
"EOF"
! system() is a GNU extension. This is more portable:
call EXECUTE_COMMAND_LINE(command)
end program
注意字符串连接的 //
和行继续的 &
。
如果您不介意使用 GNU 扩展,请使用 -fbackslash
标志进行编译,如果您愿意,可以这样编写字符串:
command = "gnuplot -persist <<EOF\n&
&set title 'grafico'\n&
&plot 'salida.txt'\n&
&EOF"
请注意 \n
而不是 new_line('A')
。另请注意,这不是连接字符串,而是单个字符串。像以前一样有一个 &
用于行继续,但如果字符串是上一行字符串的延续,则在行的开头也有一个 &
。