[英]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.