微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 gfortran 中使用调用系统调用 '<<EOF... EOF' 之间的代码?

如何解决如何在 gfortran 中使用调用系统调用 '<<EOF... EOF' 之间的代码?

我想使用“调用系统”调用 '

gnuplot -persist <<EOF
set title "grafico"
plot "salida.txt"
EOF

"salida.txt"

1  1
2  2
3  3
4  4
5  5

解决方法

mainWindow = tk.Tk()
loginWindow = tk.Tk()
version = ("v0.1")

def centerwindowLogin(width=300,height=200):
    screen_width = loginWindow.winfo_screenwidth()
    screen_height = loginWindow.winfo_screenheight()
    x = (screen_width/2) - (width/2)
    y = (screen_height/2) - (height/2)
    loginWindow.geometry('%dx%d+%d+%d' % (width,height,x,y))
    
def centerwindowMain(width=300,height=200):
    screen_width = mainWindow.winfo_screenwidth()
    screen_height = mainWindow.winfo_screenheight()
    x = (screen_width/2) - (width/2)
    y = (screen_height/2) - (height/2)
    mainWindow.geometry('%dx%d+%d+%d' % (width,y))
    
def login():
    loginWindow.title("SCC v0.1")
    header = tk.Label(loginWindow,text = "Please Login").pack()
    tk.Label(loginWindow,text = "Username").pack()
    tk.Entry(loginWindow).pack()
    tk.Label(loginWindow,text = "Password").pack()
    tk.Entry(loginWindow).pack()
    tk.Checkbutton(loginWindow,text = "Keep Me Logged In").pack()
    tk.Button(loginWindow,text = "Login",command = mainMenu).pack()
    centerwindowLogin(300,175)
    loginWindow.mainloop()
    
def mainMenu():
    loginWindow.withdraw()
    mainWindow.title("SCC v0.1")
    tk.Label(mainWindow,text = "Welcome to the Sentinel Command Center").pack()
    tk.Button(mainWindow,text = "Network Utilities",fg = "orange").pack()
    tk.Button(mainWindow,text = "Image Recognition",text = "Voice Recognition",fg = "orange").pack()
    centerwindowMain(500,400)
    mainWindow.mainloop()

login()
,
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')。另请注意,这只是一个字符串,而不是连接字符串。像以前一样,有一个 & 表示行继续,但如果字符串是上一行的延续,那么在行首也有一个 &

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。