簡體   English   中英

Fortran 90 - I / O傳遞變量作為文件路徑

[英]Fortran 90 - I/O passing variable as filepath

這似乎應該是一個簡單的解決方案,但搜索了幾個小時后,我找不到解決方案。

我想將文件路徑保存為字符變量,然后在I / O語句中使用該變量。 下面是我從“filepath”定義的文件中讀取的代碼。

character:: filepath
filepath='c:\users\chris\...\data.txt'
open(unit=1,file=filepath,status='old',action='read',form='formatted',iostat=ierror)
    if(ierror.NE.0)then
        print*,'file cannot be opened or does not exist'
        read*,
    endif
    ......

該程序編譯(使用NetBeans IDE的gfortran編譯器),但是當我運行時,我將錯誤打印到屏幕上。

注1:當我將文件路徑直接放入open函數時,如下所示,它似乎工作正常

open(unit=1,file='c:\\Users\\Chris\\...\\data.txt',status='old',action='read',form='formatted',iostat=ierror)

注意2:我在filepath變量中嘗試了前向/后向,單/雙斜線的所有變體,所以我不認為這是問題所在。 當我將“filepath”作為調試機制打印到屏幕上時(在上面的打開函數之前),所有返回的都是“C”。 所以出於某種原因,似乎我正在丟失文件路徑的其余部分。 (在我研究之前,我會留下關於什么斜杠方法適當的問題)

我很感激任何建議。

謝謝,克里斯

您已將filepath聲明為長度為1的字符變量。將聲明更改為類似character(80):: filepath (使用足夠長的長度來包含整個路徑)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM