#io #fortran #fortran90
#io #фортран #fortran90 #fortran
Вопрос:
Кажется, что это должно быть легко исправить, но после многочасовых поисков я не могу найти решение.
Я хочу сохранить путь к файлу как символьную переменную, затем использовать переменную в инструкции ввода-вывода. Ниже приведен мой код для чтения из файла, определенного «filepath».
character:: filepath
filepath='c:userschris...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
......
Программа компилируется (компилятор gfortran с использованием NetBeans IDE), но при запуске я получаю сообщение об ошибке, выведенное на экран.
Примечание 1: Когда я помещаю путь к файлу непосредственно в функцию open, как показано ниже, кажется, что он работает нормально
open(unit=1,file='c:\Users\Chris\...\data.txt',status='old',action='read',form='formatted',iostat=ierror)
Примечание 2: Я перепробовал все варианты прямого / обратного, одинарной / двойной косой черты в переменной filepath, поэтому я не думаю, что это проблема. Когда я выводю «filepath» на экран в качестве механизма отладки (перед функцией open выше), все, что возвращается, — это «C». Итак, по какой-то причине кажется, что я теряю остальную часть filepath. (Я оставлю свои вопросы относительно того, какой метод косой черты подходит, пока не изучу его подробнее)
Я ценю любые предложения.
Спасибо, Крис
Ответ №1:
Вы объявили filepath
символьную переменную длиной 1. Измените объявление на что-то вроде character(80):: filepath
(используйте длину, достаточную для того, чтобы содержать весь путь).
Комментарии:
1. Достаточно точно. Ошибка новичка на Fortran 🙂 Спасибо за быстрый ответ.